特定数据框架上的mean和sd不起作用

时间:2015-12-02 14:24:01

标签: r

我是r编程的初学者。在尝试找出特定数据框架上的均值和sd时,我遇到了以下问题。

R包:R i386 3.2.2(32位)

问题:

 n <- c(2,3,5)
 b <- c(4,5,6)

 dff <- data.frame(n,b)
 print(dff)
#  n b
#1 2 4
#2 3 5
#3 5 6
 mean(dff)
#[1] NA
Warning message:
In mean.default(dff) : argument is not numeric or logical: returning NA

有人可以指出这有什么问题吗?我如何纠正它。

3 个答案:

答案 0 :(得分:1)

要计算单个数据框列的平均值(如果这是您的意图),您可以使用以下方法将均值检索为单独的变量:

mean_of_n <- mean(dff$n)
mean_of_b <- mean(dff$b)

要计算行的平均值(以列表形式),请使用:

mean_of_rows <- rowMeans(dff)

要计算列的平均值(以列表形式),请使用:

mean_of_cols <- colMeans(dff)

答案 1 :(得分:0)

另请尝试:

apply(dff, 2 mean)

如果您希望以行方式执行操作,则可以将mean替换为任何其他函数,将2替换为1

答案 2 :(得分:0)

你的问题的答案是R-cookbook于2011年出版(第一版),当时使用的R版本是R-2.12.1但是在R-3.0之后,函数mean()更新为:

  

数据帧的mean()和数据帧和矩阵的sd()   被禁

和colMeans()和rowMeans()被引入。

因此,当您尝试使用新版本的R时,您会收到错误。

了解更多信息,请查看链接 New features in R 3.0