【发布时间】:2018-12-10 18:10:26
【问题描述】:
希望编写一个 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行
非常感谢任何帮助。
【问题讨论】:
-
如果找到三个c怎么办?另外,请在reproducible format 中分享您的数据,以便我们可以复制/粘贴到 R 中进行测试。
-
好点,我忘了提——没有一个角色会被重复两次以上,所以会有明确的起点和终点
-
Reduce(seq, which(your_data[, 1] == 'c')[1:2])