通过为变量指定长度大于1的向量来子集数据帧

鲁本

我刚开始学习R编程,但发现用以下变量替换数据框的问题:

> names(data)

[1] "Date"    "sulfate" "nitrate" "ID"  

为了得到一个变量的均值,我只使用:

均值(数据$硫酸盐)

[1] 3.880701

如果变量“ ID”为1时,如果我想要变量“ sulcate”的平均值,则使用:

平均值(子集(数据,ID == 1)$硫酸盐)

[1] 3.004444

但是,如果我想在ID为1:5的范围内求“求和”的平均值,则会收到错误消息:

平均值(子集(数据,ID == 1:5)$硫酸盐)

[1] 3.714615警告消息:ID == 1:5时:较长的对象长度不是较短的对象长度的倍数

如何过滤长度大于1(即1:10、5:8)的向量以过滤变量?

马修·伦德伯格

你想要%in%而不是==

mean(subset(data, ID %in% 1:5)$sulfate)

也许:

mean(data$sulfate[data$ID %in% 1:5])

该警告表示,当1:5扩展到的长度时data$ID,它不会被回收整数次。如果行数可被5整除,则结果会更糟。在这种情况下,错误的结果将被静默返回。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章