我正在尝试使用 dplyr 将字符串拆分为逗号分隔的字符串,但我运气不佳。
dat<-data.frame(key=1:4,labels=c('a','ab','abc','b'))
我试图让标签列成为 c('a','a,b','a,b,c','b')
我已经尝试了以下所有变体,但似乎没有任何效果。
dat %>%
mutate(labels=str_split(labels,''))
dat %>%
mutate(labels=str_split(labels,'')[[1]])
dat %>%
mutate(labels=paste(str_split(labels,''),collapse=','))
最佳答案
dplyr
或 mutate
与您的问题无关。您的问题更多是尝试将列表(由 str_split
返回)视为向量。
我会写一个小函数来做到这一点:
comma_sep = function(x) {
x = strsplit(as.character(x), "")
unlist(lapply(x, paste, collapse = ','))
}
然后你可以
mutate(dat, labels = comma_sep(labels))
# key labels
# 1 1 a
# 2 2 a,b
# 3 3 a,b,c
# 4 4 b
但是当然,您也可以将函数的内容塞进那一行。
关于r - dplyr 将字符串拆分为逗号分隔的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37579056/