在r

时间:2018-06-05 21:48:32

标签: r subset

我有一个在图中重复测量的数据集。数据集看起来像这样

我想提取所有以1(1a,1b,1c)开头的行。从这些图中测量样品15次,在每次采样事件期间采取三次重复测量。因此,最终的data.frame应该总共有135个观察值(3x3x15)。

这是我用过的代码......

Station1 <- BISC1FeldsParData[BISC1FeldsParData$Plot == c("1a", "1b", "1c"),]

然而,结果data.frame只有45个观察结果。似乎我在每个采样事件中丢失了每个图的重复。

1 个答案:

答案 0 :(得分:2)

您必须将==替换为%in%

Station1 <- BISC1FeldsParData[BISC1FeldsParData$Plot %in% c("1a", "1b", "1c"), ]

或者我们可以使用grep

Station1 <- BISC1FeldsParData[grep("^1", BISC1FeldsParData$Plot), ]

说明:regexp字符串"^1"匹配以"1"开头的条目。

或使用subset

Station1 <- subset(BISC1FeldsParData, Plot %in% c("1a", "1b", "1c"))

dplyr::filter

Station1 <- dplyr::filter(BISC1FeldsParData, Plot %in% c("1a", "1b", "1c"))