r - 基于“开始和停止”字符串的子集行
问题描述
希望编写一个 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
假设等于的行不超过 2 行'c'
任何帮助是极大的赞赏。
解决方案
您可以使用 function 查找值的位置which
,并在 index 中使用它来获取您要查找的值。如果你想要从第一个到第二个“c”的所有内容,它看起来像这样:
indices <- which(df$X1=='c')
range <- indices[1]:indices[2]
df$X2[range]
推荐阅读
- php - 来自电子邮件和回复的 PHP mail() 添加服务器地址
- javascript - '。' 未被识别为内部或外部命令、可运行程序或批处理文件
- javascript - 带有数据表或 html 的数组值的辅助标头
- c++ - 为什么 vba 不能成功调用用 c++ 编写的 dll?
- acumatica - acumatica 当我将鼠标悬停在网格中的注释图标上时,如何显示注释内容
- c# - 如何使用C#调用oracle的存储过程?
- javascript - jQuery或javascript防止输入按键事件
- webpack - Webpack sass 更具体的源图
- c# - 如何过滤 CollectionContainer
- jquery - Shopify - Debut 主题 - 根据选定的变体下拉选项显示和隐藏包含变体元字段的其他文本框