基于“开始和停止”字符串的子集行

时间:2018-12-10 18:10:27

标签: r dplyr subset rows

希望编写一个R脚本,该脚本将在列中搜索特定值并开始子设置行,直到达到特定文本值为止。

示例:

    X1  X2 
[1,] "a" "1"
[2,] "b" "2"
[3,] "c" "3"
[4,] "d" "4"
[5,] "e" "5"
[6,] "f" "6"
[7,] "c" "7"
[8,] "k" "8"

我想做的是搜索X1直到找到字母'c',然后开始对行进行子集化,直到找到另一个字母'c',此时子集程序将停止。使用上面的示例,结果应为包含c(3,4,5,6,7)的向量。

假定X1等于'c'

的行不超过2

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用函数which查找值所在的位置,并将其用作索引以获取您要查找的值。如果您想要从第一个“ c”到第二个“ c”的所有内容,它将看起来像这样:

indices <- which(df$X1=='c')
range <- indices[1]:indices[2]
df$X2[range]