【发布时间】:2015-01-27 01:21:54
【问题描述】:
我正在尝试在 R 中解决子集化问题。
我有一个数据集,其中包含两个名为 Diet 和 Bodyweight 的列。
行1:12 是控制观察值,我想获得控制组Bodyweight 列的平均值。
所以我用这个:mean(dat[1:12,2])
然后我想找出有多少非对照观察(第 13:24 行)小于对照观察(第 1:12 行)的平均值。
所以我使用了这个:
dat[dat[13:24,2] < mean(dat[1:12,2]), ]
这给了我这个:
Diet Bodyweight
3 chow 24.04
10 chow 20.10
12 chow 26.25
15 hf 22.80
22 hf 21.90
24 hf 20.73
但我期待它返回这样的内容,其中不包括 1:12 行:
Diet Bodyweight
15 hf 22.80
22 hf 21.90
24 hf 20.73
我如何做到这一点?
*edit: dput() 结果:
> dput(dat)
structure(list(Diet = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), .Label = c("chow", "hf"), class = "factor"), Bodyweight = c(21.51,
28.14, 24.04, 23.45, 23.68, 19.79, 28.4, 20.98, 22.51, 20.1,
26.91, 26.25, 25.71, 26.37, 22.8, 25.34, 24.97, 28.14, 29.58,
30.92, 34.02, 21.9, 31.53, 20.73)), .Names = c("Diet", "Bodyweight"
), class = "data.frame", row.names = c(NA, -24L))
【问题讨论】:
-
请使用
dput()发布可重现的示例