gpt4 book ai didi

r - 子集,dat[13 :24, 2] 在这种情况下没有返回我所期望的

转载 作者:行者123 更新时间:2023-12-04 11:50:27 24 4
gpt4 key购买 nike

我正在尝试在 R 中解决子集化问题。

我有一个包含两列的数据集,名为 DietBodyweight .行 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))

最佳答案

分两步完成。首先获取目标行,然后应用逻辑选择:

> dat[ 13:24, ][dat[13:24,2] < mean(dat[1:12,2]), ]
Diet Bodyweight
15 hf 22.80
22 hf 21.90
24 hf 20.73

您可以将对 "["的调用链接在一起。对“[”的第二次调用只是选择具有 12 项逻辑向量的行,但由于它是从同一组值创建的,因此它是“同步的”。

关于r - 子集,dat[13 :24, 2] 在这种情况下没有返回我所期望的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28161705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com