希望编写一个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'
非常感谢您的帮助。
答案 0 :(得分:2)
您可以使用函数which
查找值所在的位置,并将其用作索引以获取您要查找的值。如果您想要从第一个“ c”到第二个“ c”的所有内容,它将看起来像这样:
indices <- which(df$X1=='c')
range <- indices[1]:indices[2]
df$X2[range]