查找特定的单元格

时间:2018-08-20 08:36:54

标签: r

我知道这是一个非常简单的问题,但是到目前为止,我还没有找到解决方案(对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行。在此表中,我需要搜索第一个单元格(包括知道它是哪个单元格),其中包含以下文本:

#&nbsp;&nbsp;&nbsp;Zeit&n

我尝试了grepgreplmatchwhichsubset和其他一些东西,但是我没有得到特定的单元格,这个词首先出现。

因此,理想的目标:

-了解具体的单元格,该术语(见上文)首先出现

原因是,在找到特定的单元格之后,我需要将单元格和随后的100行格式化为单个string,以便其余分析正常进行(是的,我知道这很笨拙,但是我发现整个该死的东西都起作用的唯一方法>。>)

希望你能帮助我!

2 个答案:

答案 0 :(得分:0)

使data.frame具有:

 df=data.frame(x=c("sdhaisdh","#&nbsp;&nbsp;&nbsp;Zeit&n",'ASfjdfbgvfdvfd',"sadashdh","#&nbsp;&nbsp;&nbsp;Zeit&n","832yhf",rep("sadwd",times=100)))

找到符合我们条件的第一个单元格

  num=which(grepl("#&nbsp;&nbsp;&nbsp;Zeit&n",df$x))[1]

使string为下100行:

glue::collapse(df[num:(num+100),"x"],"")

答案 1 :(得分:0)

@Rui Barradas,得到了我需要的答案:

grep("#&nbsp;&nbsp;&nbsp;Zeit&n", lines)

确切地说,我对其进行了调整以使onyl成为第一个结果:

vek <- min(grep("#&nbsp;&nbsp;&nbsp;Zeit&n", lines))

对于创建字符串,我做了以下工作(完美工作):

tttt <- paste(zzzz[vek:(vek+100),], collapse ='')

编辑说:which在单元格中只有搜索词时才有附加文本(它只是在寻找该单元格,而该词正好在其中,没有其他内容)