阅读我项目中每个R脚本的第一行

阅读我项目中每个R脚本的第一行,r,organization,R,Organization,我正试图组织一个不断发展的R项目,我的团队一直在合作。我最初的想法是把所有的脚本名放到一个列表中 x = list.files(recursive = TRUE) 然后把它放在一个电子表格中,这样我就可以浏览,思考哪些脚本是过时的,哪些脚本可能应该形成单独的项目 谢天谢地,大多数脚本顶部都有一行注释,用于总结脚本内容 有没有一种方法可以将所有这些第一行注释放在一个数据帧中?i、 e.R中是否有从文件名中提取代码行的函数?请尝试以下操作: myRFiles = list.files(patte

我正试图组织一个不断发展的R项目,我的团队一直在合作。我最初的想法是把所有的脚本名放到一个列表中

 x = list.files(recursive = TRUE)
然后把它放在一个电子表格中,这样我就可以浏览,思考哪些脚本是过时的,哪些脚本可能应该形成单独的项目

谢天谢地,大多数脚本顶部都有一行注释,用于总结脚本内容

有没有一种方法可以将所有这些第一行注释放在一个数据帧中?i、 e.R中是否有从文件名中提取代码行的函数?

请尝试以下操作:

myRFiles = list.files(pattern = "*.R")
firstLines = lapply(myRFiles, FUN =  read.table, nrows = 1, sep = "\n")
df = do.call(rbind, firstLines)
myRFiles
包含您的所有R文件(更改案例的模式)

使用
read.table
可以读取第一行(
nrows=1
),并使用换行符(
\n
)作为分隔符,因此每个文件只读取一列


最后,使用
do.call和
rbind将所有数据框连接到一个数据框中

您可以通过
readLines(n=1)
读取文件的第一行。要读取所有第一行,请使用apply循环。然后,您可以将结果放入数据帧中

data.frame(comment = sapply(x, readLines, n = 1))

其中
x
是文件名的字符向量。

lappy
行给出了错误
error in FUN(x[[i]],…):前五行是空的:放弃
用户,所以永远不要停止让我惊讶。由于答案不仅有效,而且是先发布的,所以没有理由投了反对票。@RSchifini我对错误消息的原始评论仍然有效:您的答案无效。不过,我还是给了你+1。你试过把
myRFiles
改成
myRFiles=list.files(pattern=“*.R”,recursive=TRUE)
?如果我把
x
改成
x=list.files(pattern=“*.R”,recursive=TRUE)
,这就行了。非常感谢。