我的(虚构的)数据:
dat <- structure(list(animal = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 3L,
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L,
4L, 1L, 2L, 3L, 4L), .Label = c("A", "B", "C", "D"), class = "factor"),
oxygen = c(25L, 24L, 28L, 30L, 25L, 30L, 28L, 27L, 20L, 22L,
20L, 27L, 26L, 24L, 26L, 22L, 30L, 25L, 26L, 28L, 27L, 30L,
27L, 28L, 28L, 20L, 23L, 29L), time = c(49L, 33L, 2L, 22L,
15L, 22L, 49L, 40L, 11L, 2L, 24L, 48L, 32L, 18L, 39L, 46L,
6L, 24L, 26L, 40L, 26L, 26L, 1L, 36L, 4L, 17L, 50L, 24L),
habitat = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L,
1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L,
1L, 1L, 2L, 2L), .Label = c("clean", "dirty"), class = "factor")), .Names = c("animal",
"oxygen", "time", "habitat"), class = "data.frame", row.names = c(NA,
-28L))
变量解释:
动物:有 4 只动物(A、B、C 和 D)进行了耗氧量测试。
氧气:耗氧率;对每只动物进行多次测量。
时间:自机器开始测量耗氧量以来的时间(以分钟为单位)。
条件:表示采集动物的栖息地条件;清洁或肮脏(污染)的栖息地。
我想(通过 a t-test
)测试的是来自干净和肮脏(污染)栖息地的动物之间的平均耗氧率不同的地方。但是,我想将我的分析限制在每只动物在 5 到 48 分钟之间的最低耗氧量值的三分之一。
谁能提供我的 R 代码,可以对我的数据进行子集化,以仅包含每只动物最低三分之一的耗氧率以及 5-48 分钟之间的耗氧率?
我正在尝试这样的事情,但是下面的代码并没有做我想要的(我认为它的作用是它从所有数据中选择最低的三分之一,而不是每只动物的最低三分之一):
newdat <- subset(dat, oxygen <= quantile(oxygen, 1/3) & time >= 5 & time >=48)