Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R列检查是否包含来自另一列的值_R_Dataframe_Contains_Grepl - Fatal编程技术网

R列检查是否包含来自另一列的值

R列检查是否包含来自另一列的值,r,dataframe,contains,grepl,R,Dataframe,Contains,Grepl,R中是否有方法检查一列中的值是否包含另一列中的值?在下面的示例中,我试图查看col2中的值是否包含在col1中的值中,并且在每一行中都是独立的,但是得到了一条警告消息:参数“pattern”的长度大于1,并且只使用第一个元素。标志栏应显示第一行/最后一行为是,第二行和第三行为否。任何关于如何解决的想法都将不胜感激 col1 <- c("R.S.U.L.C","S.I.W","P.U.E","A.E.N") col2 <- c("R","U","I","N") df2 <- d

R中是否有方法检查一列中的值是否包含另一列中的值?在下面的示例中,我试图查看col2中的值是否包含在col1中的值中,并且在每一行中都是独立的,但是得到了一条警告消息:参数“pattern”的长度大于1,并且只使用第一个元素。标志栏应显示第一行/最后一行为是,第二行和第三行为否。任何关于如何解决的想法都将不胜感激

col1 <- c("R.S.U.L.C","S.I.W","P.U.E","A.E.N")
col2 <- c("R","U","I","N")

df2 <- data.frame(col1,col2)

df2$Flag <- ifelse(grepl(df2$col2,df2$col1),"Yes","No")

这可以通过sapply/grepl的组合来实现。沿着df2$col循环,并在字符串df$col1中grepl它。 这一点是显而易见的

i <- sapply(seq_along(df2$col2), function(i) grepl(df2$col2[i], df2$col1[i]))
df2$Flag <- c("No", "Yes")[i + 1L]
df2
#       col1 col2 Flag
#1 R.S.U.L.C    R  Yes
#2     S.I.W    U   No
#3     P.U.E    I   No
#4     A.E.N    N  Yes

这可以通过sapply/grepl的组合来实现。沿着df2$col循环,并在字符串df$col1中grepl它。 这一点是显而易见的

i <- sapply(seq_along(df2$col2), function(i) grepl(df2$col2[i], df2$col1[i]))
df2$Flag <- c("No", "Yes")[i + 1L]
df2
#       col1 col2 Flag
#1 R.S.U.L.C    R  Yes
#2     S.I.W    U   No
#3     P.U.E    I   No
#4     A.E.N    N  Yes
df2$flagdf2$flag我们可以使用stru-detect,它对模式和字符串都进行了矢量化

library(dplyr)
library(stringr)
df2 <- df2 %>% 
     mutate(Flag = c('No', 'Yes')[1+str_detect(col1, as.character(col2))])
df2
#       col1 col2 Flag
#1 R.S.U.L.C    R  Yes
#2     S.I.W    U   No
#3     P.U.E    I   No
#4     A.E.N    N  Yes
我们可以使用str_detect,它对模式和字符串都进行了矢量化

library(dplyr)
library(stringr)
df2 <- df2 %>% 
     mutate(Flag = c('No', 'Yes')[1+str_detect(col1, as.character(col2))])
df2
#       col1 col2 Flag
#1 R.S.U.L.C    R  Yes
#2     S.I.W    U   No
#3     P.U.E    I   No
#4     A.E.N    N  Yes