我有一个包含4个数据帧的列表:制作由变量为多个数据帧的NA计数的数据帧在一个列表中
> names(listofdf) [1] "q12014local" "q12014national" "q22014local" "q22014national"
所有数据帧具有相同的变量名。我想创建一个新的数据帧,通过变量和数据帧来统计NAs的数量。输出的结果应该是这样的:
v1 v2 v3 v4 v5 v6 v7
q12014local 328 278 1786 0 0 12 1
q12014national 0 100 124 0 0 7 0
q22014local 0 0 0 0 0 289 0
q22014national 423 0 10 10 78 0 0
这里有一个重复的例子:
> df1 <- data.frame(v1 = c(1:5), v2 = c("apple", "pear", NA, "peaches", NA), v3 = c("sunday", "monday", NA, NA, NA))
> df2 <- data.frame(v1 = c(2, 7, NA, NA, "9"), v2 = c("plum", NA, "kiwi", NA, "jackfruit"), v3 = c(NA, NA, "saturday", NA, "wednesday"))
> df3 <- data.frame(v1 = c(12, NA, NA, NA, 8), v2 = c("pineapple", "guava", "lytchee", NA, NA), v3 = c("tuesday", "thursday", "friday", NA, "monday"))
> listofdf <- list(df1, df2, df3)
到目前为止,我一直在使用lapply(listofdf, function(x) table(is.na(x[, 15])))
来检查列表中每个数据帧的NAs,这很麻烦!
我想'listofdf'的名字将是'第一3'。顺便说一句,你创建了'NA'作为字符串。原始数据集中是这种情况吗? – akrun 2014-11-04 19:57:15
嘿,不,实验室数据并不是字符串,它们是实际的数据。 – vagabond 2014-11-04 20:05:07
在这种情况下,您可以使用第二个选项即。 'is.na(x)' – akrun 2014-11-04 20:05:48