R 特定数据帧上的平均值和sd不起作用

R 特定数据帧上的平均值和sd不起作用,r,R,我是r编程的初学者。在试图找出特定数据帧上的平均值和sd时,我遇到了以下问题 R封装:RI386 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

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

R封装:RI386 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

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

mean_of_n <- mean(dff$n)
mean_of_b <- mean(dff$b)
平均值也可以尝试:

apply(dff, 2 mean)

如果您想按行操作,可以用
mean
替换任何其他函数,用
2
替换
1

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

数据帧的平均值()和数据帧和矩阵的sd()为 失效

并引入了colMeans()和rowMeans()

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

有关更多信息,请查看链接

你想找出的是什么意思?n或b?您正在寻找
colMeans(dff)
rowMeans(dff)
means(未列出(dff))
?关于什么是错误的是
mean
没有
data.frame
方法。大家好,我实际上指的是书中示例的下面部分(25个配方…R)“mean和sd的一个美妙之处在于,它们对数据帧非常敏感。他们知道数据框的每一列都是不同的变量,所以他们分别计算每一列的统计数据“。根据上述评论,我已尝试创建一个数据帧,但mean和sd并没有像我在上一次请求中发布的那样工作。有人能帮我怎么做吗?第一个选项和最后一个选项有什么区别?除了输出的结构之外,没有区别。由于OP对R来说是新的,但是我认为提供这两个突然想到的选项是合适的。
mean_of_cols <- colMeans(dff)
apply(dff, 2 mean)