在R中填充空数据帧

时间:2015-03-31 11:44:02

标签: r

我使用了搜索框并找到similar questions,但不是相同的搜索框。看来这是一个容易解决的问题(我是R-newbee)。

我只是想创建一个新的数据框并为其添加值。毫不奇怪,R抛出一个错误,表示行不匹配。

这是代码

d <- data.frame() 

files <- list.files(pattern="*.lst", full.names=T, recursive=FALSE)
d$fileName <- lapply(files, basename)
d$node <- gsub("([^.]+)\.[^\.lst]+\.lst", "$1", d$fileName, perl=TRUE)

这是错误

  

$<-.data.frame中的错误(*tmp*,&#34; fileName&#34;,value =   列表(&#34; A-bom.WR-P-E-A.lst&#34;,:替换有337行,数据有0

我该如何解决这个问题?我考虑使用与文件相同的行数填充d,但我不认为这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

只需在第一次使用数据框时创建数据框,因此您不必添加&#34;添加&#34;行到零行的数据框。并且您可以使用sapply返回(命名)向量而不是列表。

files <- list.files(pattern="*.lst", full.names=T, recursive=FALSE)
d <- data.frame(fileName = unname(sapply(files, basename)))
d$node <- gsub("([^.]+)\\.[^\\.lst]+\\.lst", "$1", d$fileName, perl=TRUE)

您的正则表达式导致错误,但是,我对正则表达式并不熟悉,因此您可能必须修复我的修复程序; - )