我是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
有人可以指出这有什么问题吗?我如何纠正它。
答案 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