分隔符存在于所有向量值中,并且只存在一次,因此每个向量值应该只产生一对,结果应该是两列数据帧。
我对我的解决方案并不感到不满,但想知道是否有一些很酷的功能可以让这件事变得更容易。对任何包装打开,但首选基本R。
test <- rep("a,b", 5)
# expected result
data.frame(t(do.call(cbind, strsplit(test, ","))))
#> X1 X2
#> 1 a b
#> 2 a b
#> 3 a b
#> 4 a b
#> 5 a b
您可以使用tidyr::separate()
。
test <- data.frame(x = rep("a,b", 5))
separate(test,x, c("X1","X2"))
#> X1 X2
#> 1 a b
#> 2 a b
#> 3 a b
#> 4 a b
#> 5 a b
您可以使用extract
:
library(tidyr)
data.frame(test) %>%
extract(col = test,
into = c("X1", "X2"),
regex = "(.),(.)")
X1 X2
1 a b
2 a b
3 a b
4 a b
5 a b
数据:
test <- rep("a,b", 5)