我知道这是一个非常简单的问题,但是到目前为止,我还没有找到解决方案(对R来说是新的)。
我在文本文件中有一堆数据,并通过以下函数获取它:
path <- "filepath"
print(path)
conn <- file(path,open="r")
lines <- readLines(conn)
zzzz <- data.frame(Text=rep(NA,length(lines)))
for (i in 1:length(lines)){
zzzz[i,] <- lines[i]
}
close(conn)
结果是,我有一张表,其中只有一列和i
行。在此表中,我需要搜索第一个单元格(包括知道它是哪个单元格),其中包含以下文本:
# Zeit&n
我尝试了grep
,grepl
,match
,which
,subset
和其他一些东西,但是我没有得到特定的单元格,这个词首先出现。
因此,理想的目标:
-了解具体的单元格,该术语(见上文)首先出现
原因是,在找到特定的单元格之后,我需要将单元格和随后的100行格式化为单个string
,以便其余分析正常进行(是的,我知道这很笨拙,但是我发现整个该死的东西都起作用的唯一方法>。>)
希望你能帮助我!
答案 0 :(得分:0)
使data.frame具有:
df=data.frame(x=c("sdhaisdh","# Zeit&n",'ASfjdfbgvfdvfd',"sadashdh","# Zeit&n","832yhf",rep("sadwd",times=100)))
找到符合我们条件的第一个单元格
num=which(grepl("# Zeit&n",df$x))[1]
使string
为下100行:
glue::collapse(df[num:(num+100),"x"],"")
答案 1 :(得分:0)
@Rui Barradas,得到了我需要的答案:
grep("# Zeit&n", lines)
确切地说,我对其进行了调整以使onyl成为第一个结果:
vek <- min(grep("# Zeit&n", lines))
对于创建字符串,我做了以下工作(完美工作):
tttt <- paste(zzzz[vek:(vek+100),], collapse ='')
编辑说:which
在单元格中只有搜索词时才有附加文本(它只是在寻找该单元格,而该词正好在其中,没有其他内容)