【发布时间】:2019-10-29 23:45:07
【问题描述】:
假设这样一个字符串向量:
x <- c("abc", "abcde", "abcde123")
我想在给定字符串的每个元素之间添加一个分隔符(逗号或其他)以实现类似的效果(此处分隔符是逗号):
[1] "a,b,c" "a,b,c,d,e" "a,b,c,d,e,1,2,3"
我可以通过以下方式实现它:
sapply(strsplit(x, "", fixed = TRUE), function(x) paste(x, collapse = ","))
但是,我很好奇是否有不同的方法来实现它。
【问题讨论】:
-
没有通用函数的较短版本:
sapply(strsplit(x, ""), paste, collapse=","). -
我已经回答了上述问题,但想知道您为什么需要这个。
-
在这种情况下,您可以这样做:
data.frame(X = "abc") %>% separate(X, into = c("A", "B", "C"), sep = "\\B") -
或试试这个:
data.frame(X = "abc") %>% separate(X, into = c("A", "B", "C"), sep = 1:3) -
@G.Grothendieck 也许将两个
separate替代品(和其他?)添加到Separate a column into multiple columns using tidyr::separate with sep=“” 干杯。