给定一个简单的2x2数据帧,我可以计算行或列的最小值或最大值,我可以计算列的平均值,但我无法计算行的平均值.为什么不?
> dat <- data.frame( A=c(1,2),B=c(3,4))
> dat
A B
1 1 3
2 2 4
> min(dat[1,])
[1] 1
> max(dat[1,])
[1] 3
> mean(dat[,1])
[1] 1.5
> mean(dat[1,])
[1] NA
Warning message:
In mean.default(dat[1, ]) :
argument is not numeric or logical: returning NA
Run Code Online (Sandbox Code Playgroud)
max并min接受多个向量作为参数,并计算所有向量的最大值/最小值.
mean更受限制,它需要一个支持类型的单个参数.例如,vector是受支持的类型.
有关更多详细信息,请参阅?max和?mean,尤其是" 用法"," 参数 "和" 详细信息"部分.
类型dat是data.frame.因此dat[1,],数据帧的一行也是一个数据帧,每列中都有一个值.
传递数据帧时max,它对数据帧的列(向量)进行操作,返回所有数据帧的最大值.
传递数据帧时mean,会出现错误,因为数据帧不是受支持的类型之一.
您可以使用unlist从数据框中获取矢量.它实际上是通过连接数据帧的所有向量来实现的.例如,unlist(dat)将返回向量1 2 3 4.
dat[1,]是第一行dat,其具有载体1和3,所以unlist(dat[1,])将返回向量1 2.你可以打电话mean来.
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |