R 3.0.0中by()函数的奇怪行为?

查尔斯·布鲁尔

我正在尝试熟悉构成R的广阔宇宙。有一个出色的功能by()似乎可以满足我的需要,但它似乎并不喜欢在数据框中选择多个列。

我使用了标准的虹膜数据集,虽然选择了单列看起来很正常,但是似乎不喜欢选择多列。该示例取自一本参考书,但是当然可能有错字。

第一个版本(可行)

> by(iris[,2],Species,mean)
Species: setosa
[1] 3.428
------------------------------------------------------------ 
Species: versicolor
[1] 2.77
------------------------------------------------------------ 
Species: virginica
[1] 2.974

第二版(不是)

> by(iris[,2:3],Species,mean)
Species: setosa
[1] NA
------------------------------------------------------------ 
Species: versicolor
[1] NA
------------------------------------------------------------ 
Species: virginica
[1] NA
Warning messages:
1: In mean.default(data[x, , drop = FALSE], ...) :
  argument is not numeric or logical: returning NA
2: In mean.default(data[x, , drop = FALSE], ...) :
  argument is not numeric or logical: returning NA
3: In mean.default(data[x, , drop = FALSE], ...) :

感谢收到任何解释。

里卡多·萨波特塔

您收到的消息与by功能无关,与无关mean
data.framemean期望向量将其传递了。

相反,如果您要使用对data.frames起作用的函数,则不会引发警告:

by(iris[,2:3],iris$Species, colMeans)
by(iris[,2:3],iris$Species, print)
etc

如果需要,你可以嵌套*ply式功能(例如bytapplylapply等)。尝试以下示例:

by(iris[,2:3],iris$Species,lapply, mean)

至于mean

注意,如果您尝试调用mean任何data.frame,它将抱怨:

mean(iris[,2:3])
mean(iris[iris$Species==iris$Species[[1]] ,2:3])

使用colMeans替代

colMeans(iris[iris$Species==iris$Species[[1]] ,2:3])

不相关的注释:避免使用attach;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

QML IntValidator底部> 0的奇怪行为

来自分类Dev

整数为0的ref计数器的奇怪行为

来自分类Dev

data.table v1.9.5(R)中shift()函数的奇怪行为

来自分类Dev

R中匹配函数的奇怪行为

来自分类Dev

N不受约束时的'nth0 / 3`行为

来自分类Dev

在R中添加前导0

来自分类Dev

在R中将(0,1,0,0,1,1,1)转换为(0,0,0,1,0,1,2)

来自分类Dev

在R函数中管道传递给return()时会出现奇怪的行为?

来自分类Dev

R中truncdist的积分函数的“奇怪”行为

来自分类Dev

函数功能始终返回0-R

来自分类Dev

在R中获得0而不是精确的结果

来自分类Dev

用R中的M3C处理来自pca()的数据帧中的数据帧中的“ 0”和“ -inf”

来自分类Dev

解决R中的BesselJ(J0)函数

来自分类Dev

sapply中的R逻辑(0)

来自分类Dev

R中以0开头的条形图

来自分类Dev

xargs -r0和xargs -0

来自分类Dev

R中奇怪的strptime行为

来自分类Dev

QML IntValidator底部> 0的奇怪行为

来自分类Dev

R中列表的奇怪行为

来自分类Dev

bash中1>&0的行为

来自分类Dev

〜1和〜0在python 3中给出奇怪的结果

来自分类Dev

R中匹配函数的奇怪行为

来自分类Dev

N不受约束时的'nth0 / 3`行为

来自分类Dev

尝试grep查找-print0会导致奇怪的行为

来自分类Dev

从0积分到r中的变量

来自分类Dev

当 max==0 时 max 和在 MySQL 中的奇怪行为

来自分类Dev

当 Z 轴介于 0 和 1 之间时,如何向 R 中的 Surface3d 添加渐变颜色

来自分类Dev

reg [7:0] a [3:0] 和 reg [7:0] a [0:3] 有什么区别

来自分类Dev

R 范围:1:0 - 不合逻辑的行为