R 检查是否有一列';s值包含在另一列';s,然后将包含的列添加为新列
我有这个数据帧 D1$document=Emily 1.1.1。 D2$user\u name=Emily 我希望匹配D2是否与D1匹配,如果D2$user_name列值(按行)也包含在D1$document value by row中,则添加D2$user_name对应值,该值位于D1中的一个新列中,该列也称为D1$user_name 我试过stru_-detect、match等,但似乎做不好R 检查是否有一列';s值包含在另一列';s,然后将包含的列添加为新列,r,string,dataframe,dplyr,R,String,Dataframe,Dplyr,我有这个数据帧 D1$document=Emily 1.1.1。 D2$user\u name=Emily 我希望匹配D2是否与D1匹配,如果D2$user_name列值(按行)也包含在D1$document value by row中,则添加D2$user_name对应值,该值位于D1中的一个新列中,该列也称为D1$user_name 我试过stru_-detect、match等,但似乎做不好 unigram_data$user_name <- unigram_data %>% m
unigram_data$user_name <- unigram_data %>% mutate(user_name = ifelse(str_detect(as.character(unigram_data$document)
, as.character(review_corpus$user_name)),
cbind(user_name = review_corpus$user_name),
NA
))
Thank you!
unigram\u data$user\u name%变异(user\u name=ifelse(str\u detect)(as.character(unigram\u data$document)
,as.character(查看语料库$user\u name)),
cbind(user\u name=review\u corpus$user\u name),
NA
))
非常感谢。
是的,如果没有一个可复制的最小示例,就不可能给出准确的建议。但是,这里有一个通用示例,使用case\u当
和str\u检测时
dplyr::starwars %>%
select(name,homeworld,species) %>%
mutate(IsHuman = str_detect(species,'Human')) %>%
mutate(HumanFromNaboo = case_when(
species == 'Human' & IsHuman == T ~ T,
T ~ F
))
您需要为
unigram_data
data.frame创建一个可复制的示例。并添加相关的library()调用。