我有一份我需要执行分析的文件列表。我想将每次迭代的结果存储为数据帧作为新行。这是我尝试但得到错误:
Error in `$<-.data.frame`(`*tmp*`, "c1", value = c(0, 64010, 0, 64010, : replacement has 2 rows, data has 65
这是我的代码(代码的这一部分只计算每个文件中的记录数)
h <- data.frame(matrix(0, ncol = 2, nrow = 65))
colnames(y) <- c("c1","c2")
my_files <- list.files("C:/Users/....")
for (i in 1:length(my_files))
{
k <- length(readLines(my_files[i], skipNul=TRUE))
h$c1 <- rbind(h$c1, k)
}
答案 0 :(得分:2)
length
会给你一个号码。您正尝试将rbind
单个值转换为两列对象。一种解决方案是在循环中的列c2中添加NA,如下所示:
h <- rbind(h, c(k,NA))
答案 1 :(得分:0)
尽量远离for循环。考虑使用其中一个apply函数,例如lapply。