按固定分隔符拆分字符向量值 - return 数据框,每个向量值一行

Split character vector values by fixed delimiter - return data frame with one row for each vector value

分隔符出现在所有矢量值中,并且只有一次,因此每个矢量值应该恰好是一对,结果应该是一个两列数据框。

我对我的解决方案并不不满,但想知道是否有很酷的功能可以让这更容易。对任何包开放,但首选 base 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)