r - dplyr 中未显示 SD 值

标签 r dplyr

我有这个数据集:

structure(list(CAMPAMENTO = c("Futura Esperanza", "Futura Esperanza", 
"Futura Esperanza", "Futura Esperanza", "Futura Esperanza", "Nuevo Amanecer", 
"Nuevo Amanecer", "Nuevo Amanecer", "Nuevo Amanecer", "Nuevo Amanecer", 
"Nuevo Amanecer", "Laderas de Angelmó", "Laderas de Angelmó", 
"Laderas de Angelmó", "Laderas de Angelmó", "Laderas de Angelmó", 
"Laderas de Angelmó", "Laderas de Angelmó", "Pelluhuin 1", 
"Pelluhuin 1", "Pelluhuin 1", "Pelluhuin 1", "Pelluhuin 1", "Pelluhuin 1", 
"Pelluhuin 1", "Pelluhuin 2", "Pelluhuin 2", "Pelluhuin 2", "Pelluhuin 2", 
"Pelluhuin 2", "Mediaguas", "Mediaguas", "Mediaguas", "Mediaguas", 
"Mediaguas", "Mediaguas", "Mediaguas", "Mediaguas", "Mediaguas", 
"Mediaguas"), CEO = c(1L, 4L, 2L, 0L, 0L, 0L, 0L, 1L, 2L, 0L, 
0L, 2L, 2L, 0L, 6L, 0L, 1L, 0L, 1L, 3L, 2L, 0L, 0L, 0L, 0L, 0L, 
0L, 3L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 2L, 3L), ceo = c(0L, 
0L, 0L, 1L, 5L, 0L, 0L, 2L, 0L, 4L, 9L, 0L, 0L, 0L, 0L, 6L, 1L, 
0L, 0L, 0L, 3L, 2L, 8L, 7L, 3L, 1L, 0L, 2L, 7L, 4L, 0L, 1L, 2L, 
0L, 1L, 0L, 1L, 3L, 0L, 0L)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -40L), .Names = c("CAMPAMENTO", "CEO", "ceo"
))

我可以计算列 CEO 和 ceo 的均值和标准差,例如:

mean(df$ceo, na.rm = T)
[1] 1

和标清,

sd(df$ceo, na.rm = T)
[1] 3

但是当

df %>% 
  group_by(CAMPAMENTO) %>% 
  summarise(n = n(), 
            "CEO" = mean(CEO), "SD CEO" = sd(CEO),
            "ceo" = mean(ceo), "SD ceo" = sd(ceo))

结果是

enter image description here

但是没有显示 sd 结果。

我做错了什么?

提前致谢。

最佳答案

问题是 summarise 中的计算是连续进行的。例如,sd(CEO) 是基于先前构建的新列 mean(CEO),因此 NA 或更精确的 NaN ,因为 sd(mean(d$CEO))NA

命名您的列可以解决此问题:

## Not working
df %>% 
  group_by(CAMPAMENTO) %>% 
  summarise(n = n(), 
            "CEO" = mean(CEO), 
            "SD CEO" = sd(CEO),
            "ceo_mean" = mean(ceo), 
            "SD ceo" = sd(ceo))

## Working
df %>% 
  group_by(CAMPAMENTO) %>% 
  summarise(n = n(), 
            "Mean_CEO" = mean(CEO), 
            "SD CEO" = sd(CEO),
            "Mean_ceo" = mean(ceo), 
            "SD ceo" = sd(ceo))

关于r - dplyr 中未显示 SD 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46797658/

相关文章:

唯一值上的 R ifelse 循环总是解析为 FALSE

r - 通过匹配值将向量连接到数据框中

r - 如何增加 R 中绘制区域词云的大小

r - 如何仅显示ggpairs中的下三角形?

r - 使用 dplyr 基于 R 中的其他两列自定义变异新列

r - 根据时间范围(包括分钟)对行进行子集

r - 基于两个条件进行过滤: values less than on matching dates?

r - 循环字符向量并使用元素作为 lambda 函数中的列名

r - 使用 R 根据 VIF 标准自动从数据框中删除变量

r - r 中的简单函数