R:在`by`中使用函数`max`

时间:2013-11-18 06:49:14

标签: r

新手问题在这里,但我试图在名为x2的数据帧上使用。 x2 $秒是数字,但不知怎的,我仍然收到此错误。

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

1 个答案:

答案 0 :(得分:1)

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

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

输出:

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