我可以计算行或列的最小值或最大值,我可以计算列的平均值,但我无法计算行的平均值.为什么不?

Chr*_*oms 2 r dataframe

给定一个简单的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)

Sto*_*ica 5

maxmin接受多个向量作为参数,并计算所有向量的最大值/最小值.

mean更受限制,它需要一个支持类型的单个参数.例如,vector是受支持的类型.

有关更多详细信息,请参阅?max?mean,尤其是" 用法"," 参数 "和" 详细信息"部分.

类型datdata.frame.因此dat[1,],数据帧的一行也是一个数据帧,每列中都有一个值.

传递数据帧时max,它对数据帧的列(向量)进行操作,返回所有数据帧的最大值.

传递数据帧时mean,会出现错误,因为数据帧不是受支持的类型之一.

您可以使用unlist从数据框中获取矢量.它实际上是通过连接数据帧的所有向量来实现的.例如,unlist(dat)将返回向量1 2 3 4. dat[1,]是第一行dat,其具有载体13,所以unlist(dat[1,])将返回向量1 2.你可以打电话mean来.