use*_*113 1 string split r dataframe
假设我有以下数据框
> df <- data.frame(var1 = c("A", "B", "C", "D"),
var2 = c("test", "5 | 6", "X & Y", "M | N | O"))
> df
var1 var2
1 A test
2 B 5 | 6
3 C X & Y
4 D M | N | O
Run Code Online (Sandbox Code Playgroud)
我怎样才能在分裂值var2由|与&运营商,并把它们作为单独的行插入same data.frame.输出应如下所示:
> df
var1 var2
1 A test
2 B 5
3 B 6
4 C X
5 C Y
6 D M
7 D N
8 D O
Run Code Online (Sandbox Code Playgroud)
我使用strsplit和for循环来实现它.但是,我认为这个编码不是很好.任何想法如何以更好的R方式实现这一目标?
你可以这样做:
s <- strsplit(df[,2], " \\| | & ")
cbind(var1=rep(df[,1], sapply(s, length)), var2=unlist(s))
var1 var2
[1,] "A" "test"
[2,] "B" "5"
[3,] "B" "6"
[4,] "C" "X"
[5,] "C" "Y"
[6,] "D" "M"
[7,] "D" "N"
[8,] "D" "O"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |