【发布时间】:2020-05-18 23:36:29
【问题描述】:
在数据框中,我想根据另一列中出现的一组特定字符串(字符向量)创建一个新列。
所以基本上,我想要这个:
ID Phrases
1 some words
2 some words dec
3 some words nov may
返回这个:
ID Phrases MonthsOccur
1 some words NA
2 some words dec dec
3 some words nov may may nov
我已经尝试了以下方法,但我不确定为什么它会给我这样的结果:
library(dplyr)
vMonths <- c("jan","feb","mar","apr","may","jun","jul","aug","sept","nov","dec")
a <- c(1,2,3)
b <- c('phrase number one', 'phrase dec','phrase nov')
df <- data.frame(a,b)
names(df) <- c("ID","Phrases")
df <- df %>% mutate(MonthsOccur = paste(vMonths[str_detect(Phrases, vMonths)],collapse=" "))
它给了我以下警告:
警告信息: 在 stri_detect_regex(string, pattern, negate = negate, opts_regex = opts(pattern)) 中: 较长的对象长度不是较短对象长度的倍数
结果如下:
ID Phrases MonthsOccur
1 some words dec
2 some words dec dec
3 some words nov may dec
【问题讨论】:
-
旁注:
tolower(month.abb)