首页 > 解决方案 > 在 r 中组合向量

问题描述

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

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

这是我使用的代码...

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

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

标签: rsubset

解决方案


您必须替换==%in%

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

或者我们可以使用grep

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

说明:正则表达式字符串"^1"匹配以 . 开头的条目"1"


或使用subset

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

或者dplyr::filter

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

推荐阅读