我试图查看向量中的元素是否与第二个向量中元素的前四位数字匹配(它们是嵌套标识符),我不太确定如何运行匹配。例如:
X Y
1111 111120
1111 890933
2222 780777
2222 222247
我想创建代码来告诉我向量 y 中元素 i 的前四位数字是否与向量 x 中元素 i 中的数字匹配。扩展示例,我希望看到:
True
False
False
True
感谢您的任何想法。
使用apply
循环遍历行并使用grepl
将起作用......
apply( df , 1 , function(x) grepl( x[1] , x[2] ) )
#[1] TRUE FALSE FALSE TRUE
假设您的 data.frame 是df
并且 usingsubstr
可以解决问题。
> df$X==as.numeric(substr(df$Y, start=1, stop=4))
[1] TRUE FALSE FALSE TRUE
将所有内容放在一个新的data.frame中:
> transform(df, Z=df$X==as.numeric(substr(df$Y, start=1, stop=4)))
X Y Z
1 1111 111120 TRUE
2 1111 890933 FALSE
3 2222 780777 FALSE
4 2222 222247 TRUE
查看?substr
有关其工作原理的更多详细信息。