我正在尝试查找一堆CSV文件中完整行的数量(无NA值)。但是,每次使用for循环向数据框中添加新行时,它都会输出如何在行上方创建该新行。如何阻止这种情况发生/删除重复标签?
我尝试使用removeWords和停用词。
complete <- function(directory, site.id = 1:332) {
for (i in site.id) {
path <- paste(getwd(), "/", directory, "/", sprintf("%03d", i), ".csv", sep = "")
dat <- read.csv(path)
DF <- data.frame(sum(!complete.cases(dat)), row.names = i)
print(DF)
}
}
我希望结果看起来像这样:
1 1344
2 2611
3 1948
但是它们不可避免地看起来像这样:
sum..complete.cases.dat..
1 1344
sum..complete.cases.dat..
2 2611
sum..complete.cases.dat..
3 1948
答案 0 :(得分:0)
您需要在循环外初始化数据帧。通过在循环中执行此操作,您将创建一个仅在该循环迭代中存在的数据框,而不会将这些值永久存储在一起。
df <- data.frame(id = c())
然后,当您添加每个元素时,将其定向到第一列和第i行的索引。行名将自动计数。
df[i,1] <- sum(!complete.cases(dat))
因此它看起来像:
df[i,1] <- sum(!complete.cases(dat))
complete <- function(directory, site.id = 1:332) {
for (i in site.id) {
path <- paste(getwd(), "/", directory, "/", sprintf("%03d", i), ".csv", sep = "")
dat <- read.csv(path)
df[i,1] <- sum(!complete.cases(dat))
print(DF)
}
}