我有一个数据框,其中我已将第一列转换为二进制标志
即:
1. 1000
2. 0010
3. 0100
4. 0110
5. 0010
6. 1010
7. 0001
8. 0011
我想拔出与第3位匹配“ 1”的所有行。
例如。第2、4、5、6和8行
不幸的是,有很多行,而且金额有变化,所以我不能只是对行进行子集化。
答案 0 :(得分:1)
子字符串并进行比较:
myDataFiltered <- myData[ substr(myData$myCol, start = 3, stop = 3) == "1", ]
答案 1 :(得分:1)
您可以为此使用正则表达式:
df[grepl("^..1", df$V1),]
# V1
#1: 0010
#2: 0110
#3: 0010
#4: 1010
#5: 0011
表达式"^..1"
表示您从字符串(^
)的开头开始匹配,然后有两位数字可以是任意数字(..
),然后第三位数字必须是为1(1
)。 grepl
返回一个逻辑索引,该逻辑索引在找到匹配项时为true,否则为false。