【发布时间】:2016-07-13 18:00:19
【问题描述】:
我是使用 R 的新手,但似乎下面的代码应该可以工作。为什么我没有得到我需要的统计数据?谢谢。
> stats <- ddply(Y, "SECT", summarise, mean.EE = mean(EE),
+ sd.EE = sd(EE),
+ mean.AA = mean(AA),
+ sd.AA = sd(AA),
+ mean.II = mean(II),
+ sd.II = sd(II))
> stats
SECT mean.EE sd.EE mean.AA sd.AA mean.II sd.II
1 H1 NA NA NA NA NA NA
2 H2 NA NA NA NA NA NA
3 H3 NA NA NA NA NA NA
> str(Y)
'data.frame': 537 obs. of 5 variables:
$ WORD: chr "a" "a" "a" "a" ...
$ SECT: chr "H1" "H1" "H1" "H1" ...
$ EE : num 2 2 2 2 2 ...
$ AA : num 1.38 1.38 1.38 1.38 1.38 ...
$ II : num 1 1 1 1 1 1 1 1 1 1 ...
PS - 我知道看起来每个变量(EE、AA、II)都没有变化,但这只是因为它们是排序的......
【问题讨论】:
-
尝试将
na.rm = TRUE添加到均值函数中。如果变量中有任何NA,它会将所有内容转换为NA。 -
“EE”中是否有任何 NA 值。如果是这种情况,您可以使用
na.rm=TRUE -
尴尬的是,这就是问题所在。我通过使用 ddply(na.omit(Y)...) 解决了它。 na.rm=TRUE 效率更高吗?