我有一堆txt文件,想要编写一个循环,该循环读取整个文件并将其内容(作为单个字符串)写入数据帧。这是代码:
file.names <- dir(path, pattern = "*.txt", recursive = TRUE, full.names = TRUE)
df1 <- data.frame(matrix(ncol = 1, nrow = 0))
colnames(df1) <- "string"
for(i in 1:length(file.names)){
df2 <- read_file(file.names[i])
dataframe <- rbind(df1, df2)
}
循环不起作用-我只读取一个文件,并将其内容写为列的名称。我希望每个txt文件的字符串内容都代表数据帧中的一个观察值/行。非常感谢您的时间和精力!
答案 0 :(得分:1)
我要做的是将data.frames读入列表。使用do.call
,我们可以将所有内容组合到一个data.frame中,以供进一步处理。
file.names <- dir(path, pattern = "*.txt", recursive = TRUE, full.names = TRUE)
xy <- lapply(file.names, FUN = read_file)
xy <- do.call(rbind, xy)
此代码假定read_file
返回具有所有相同列名的正确data.frame。