我想在向量中搜索字符串"hello“"world”的序列。当我找到这个序列时,我希望将它(包括前后的10个元素)作为行复制到data.frame中,并对其进行进一步的分析。
我的问题是:我得到了一个错误:“新列将在现有列之后留下漏洞”。我刚开始编写代码,所以我不知道如何操作data.frames。也许我需要在循环中创建行?
这就是我所拥有的:
df = data.frame()
i <- 1
for(n in 1:length(v))
{
if(v[n] == 'hello' & v[n+1] == 'world')
{
df[i,n-11:n+11] <- v[n-10:n+11]
i <- i+1
}
}谢谢!
发布于 2014-11-22 18:20:14
也许这会有帮助
indx <- which(v1[-length(v1)]=='hello'& v1[-1]=='world')
lst <- Map(function(x,y) {s1 <- seq(x,y)
v1[s1[s1>0 & s1 < length(v1)]]}, indx-10, indx+11)
len <- max(sapply(lst, length))
d1 <- as.data.frame(do.call(rbind,lapply(lst, `length<-`, len)))数据
set.seed(496)
v1 <- sample(c(letters[1:3], 'hello', 'world'), 100, replace=TRUE)https://stackoverflow.com/questions/27080557
复制相似问题