我现在正在从头开始学习R,我正在尝试计算给定表中NA的数量,并根据它来自的文件的ID进行汇总。然后,我想在新数据框中输出该信息,仅显示ID和其中包含的NA行的总和。我已经看过一些类似的问题,但它们似乎都处理的是非常短的数据集,而我的数据集相当长(10k +行),因此我无法调出每一行来聚合。
理想情况下,如果我从名为" Data"的数据表开始总共有四列,一列名为" ID",我想输出一个简单的数据框:
[ID] [NA_Count]
1 500
2 352
3 100
提前致谢...
答案 0 :(得分:0)
以下内容应该有效,但我假设Date始终存在且Field 1和Field 2是数字:
# get file names and initialize a vector for the counts
fileNames <- list.files(<filePath>)
missRowsVec <- integer(length(fileNames))
# loop through files, get number of
for(filePos in 1:length(fileNames)) {
# read in files **fill in <filePath>**
temp <- read.csv(paste0(<filePath>, fileNames[filePos]), as.is=TRUE)
# count the number of rows with missing values,
# ** fill in <fieldName#> with strings of variable names **
missRowsVec[filePos] <- sum(apply(temp[, c(<field1Name>, <field2Name>)],
function(i) anyNA(i)))
} # end loop
# build data frame
myDataFrame <- data.frame("fileNames"=fileNames, "missCount"=missRowsVec)
这可能有点密集,但它应该或多或少地起作用。尝试它的一小部分,就像一些内部函数一样,看看它是如何工作的。