我有以下数据框:
df2 <-
structure(list(A = c(4, 5, 3, 3, 4, 4, 4, 5, 5, 4),
B = c(4, 5, 4, 4, 4, 4, 3, 5, 5, 4),
C = c(4, 5, 3, 4, 2, 4, 2, 5, 5, 4),
D = c(4, 5, 0, 0, 1, 4, 0, 0, 0, 0),
E = c(4, 5, 4, 4, 4, 4, 2, 5, 5, 5),
F = c(5, 5, 4, 4, 4, 4, 2, 5, 4),
G = c(5, 5, 4, 4, 2, 4, 2, 5, 5, 5),
H = c(5, 5, 4, 4, 3, 4, 3, 5, 5, 4),
K = c(5, 5, 4, 4, 3, 4, 2, 5, 5, 5),
L = c(5, 5, 4, 4, 3, 4, 2, 5, 5, 5)),
.Names = c("A", "B", "C", "D", "E", "F", "G", "H", "K", "L"),
row.names = c(NA, -10L),
class = c("tbl_df", "tbl", "data.frame"))
但是当我这样做时,不知为何不考虑“ NA”:
library(dplyr)
library(tidyr)
df2 %>% gather(Type) %>% group_by(Type) %>% summarise_all(funs(mean(., na.rm = TRUE), sd(., na.rm = TRUE), n(),n1 = sum(!is.na(.)), n2 = sum(is.na(.))))
未考虑NA的结果:
“ n()”,sum(!is.na(。)或sum(is.na(。))中的任何一个都没有得到正确的结果(我知道最后两个彼此相反),只是为了确保
答案 0 :(得分:0)
@ANG
谢谢,这可以解决问题,并且还显示了我在错误的转弯处。为了更好地工作,我在一个很小的子集上开发了查询,我在问题中发布了一个子集。 那个没有“自然的” NA,我只是拿出一个值,并没有像ANG所建议的那样用NA代替ist。
对完整数据运行查询后,我得到了我所需要的!
感谢指出!