> vars=c("mpg","hp","wt")
> head(mtcars[vars])
mpg hp wt
Mazda RX4 21.0 110 2.620
Mazda RX4 Wag 21.0 110 2.875
Datsun 710 22.8 93 2.320
Hornet 4 Drive 21.4 110 3.215
Hornet Sportabout 18.7 175 3.440
Valiant 18.1 105 3.460
> str(vars)
chr [1:3] "mpg" "hp" "wt"
> str(head(mtcars[vars]))
'data.frame': 6 obs. of 3 variables:
$ mpg: num 21 21 22.8 21.4 18.7 18.1
$ hp : num 110 110 93 110 175 105
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
> dstats=function(x)(c(mean=mean(x),sd=sd(x)))
> by(mtcars[vars],mtcars$am,dstats)
错误于is.data.frame(x) : (串列)对象不能强制改变成'double'种类
此外: 警告信息:
In mean.default(x) : 参数不是数值也不是逻辑值:回覆NA
求各路大神这是什么原因造成的,怎么修改?