2017-10-17 29 views
1

不显示我有这样的数据集:SD值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,

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结果显示。

我在做什么错了?

在此先感谢。

+0

可能是因为他们是整数值,尝试将这些用的cols'as.double' –

+0

没有,'sd','mean'等尝试coherce如果可能。整数是没有问题的,因为它们被简化为双倍。 –

回答

1

问题是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))