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.