R:使用函数“max”在“by”`

R:使用函数“max”在“by”`,r,R,这里有一个新手问题,但我试图在一个名为x2的数据帧上使用by。x2$second是数字,但不知何故我仍然收到这个错误 x2<-data.frame(first=c("a","a","a","b","b","b"),second=c(1,2,NA,1,3,5)) x2 # first second #1 a 1 #2 a 2 #3 a NA #4 b 1 #5 b 3 #6 b 5 b

这里有一个新手问题,但我试图在一个名为x2的数据帧上使用by。x2$second是数字,但不知何故我仍然收到这个错误

x2<-data.frame(first=c("a","a","a","b","b","b"),second=c(1,2,NA,1,3,5))
x2
#  first second
#1     a      1
#2     a      2
#3     a     NA
#4     b      1
#5     b      3
#6     b      5
by(x2,x2$first,max,na.rm=TRUE)
#Error in FUN(X[[1L]], ...) : 
#  only defined on a data frame with all numeric variables

x2第一个参数应该只包含要应用于
max
的数据,而不是整个数据帧。在这里,您只想将其应用于
第二列

by(x2$second, x2$first, max, na.rm=TRUE)
输出:

x2$first: a
[1] 2
------------------------------------------------------------------------------------------- 
x2$first: b
[1] 5

关于第一个论点,R文件误导了我。谢谢你把事情弄清楚@WITHOFED,对于这样的事情,您可能需要考虑<代码> TApp> <代码>,如:<代码>(x2,tpApple(第二,第一,max,n.rm=true))< /COD>。