Example:

see_context <- function(word, data, context) {
    dat <- data$strings
    temp <- grep(paste("^", word, "$", sep=""), dat)
    if(length(temp))
index <- lapply(temp, function(x) seq(max(0, x - context), min(x + context, length(dat))))
    sapply(index, function(x) paste(dat[x], collapse=" "))
}
see_context("is", mydf, 1)
see_context("is", mydf, 2)


Uwe Ligges


Fredrik Karlsson wrote:
Dear list,

I have a general problem that I really don't know how to solve efficiently
in R. Lets say we have a sequence of things, like for instance a string of
words, that is stored in a file. We need all the words in a table format, so
therefore we create an id for the word, that links the word to a file and
the position of the word within the file, like:

#In this case a very short file
strsplit("This is a text string, wich is stored in the file myfile","
")[[1]] -> mystring
#Now, store in a data.frame
mydf <- data.frame(strings=mystring,
word_id=paste("myfile",1:length(mystring),sep="_"))
mydf
   strings   word_id
1     This  myfile_1
2       is  myfile_2
3        a  myfile_3
4     text  myfile_4
5  string,  myfile_5
6     wich  myfile_6
7       is  myfile_7
8   stored  myfile_8
9       in  myfile_9
10     the myfile_10
11    file myfile_11
12  myfile myfile_12

Now, I would like to see all the words 'is' in a user defined window: so
see_context("is",mydf,1) would give
This is a
wich is stored

and see_context("is",mydf,2) would show two words before and after.. and so
on.

Any ideas on how to solve this kind of problem in R?

/Fredrik



______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to