按固定分隔符拆分字符向量值 - 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)
分隔符出现在所有矢量值中,并且只有一次,因此每个矢量值应该恰好是一对,结果应该是一个两列数据框。
我对我的解决方案并不不满,但想知道是否有很酷的功能可以让这更容易。对任何包开放,但首选 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)