我有以下数据框,测量连接成一个列,由一些分隔符分隔:
df <- data.frame(v1=c(1,2), v2=c("a;b;c", "d;e;f"))
df
v1 v2
1 1 a;b;c
2 2 d;e;f;g
Run Code Online (Sandbox Code Playgroud)
我想将其融化/转换为以下格式:
v1 v2
1 1 a
2 1 b
3 1 c
4 2 d
5 2 e
6 2 f
7 2 g
Run Code Online (Sandbox Code Playgroud)
有优雅的解决方案吗?
谢谢!
您可以拆分字符串strsplit.
拆分第二列中的字符串:
splitted <- strsplit(as.character(df$v2), ";")
Run Code Online (Sandbox Code Playgroud)
创建一个新的数据框:
data.frame(v1 = rep.int(df$v1, sapply(splitted, length)), v2 = unlist(splitted))
Run Code Online (Sandbox Code Playgroud)
结果:
v1 v2
1 1 a
2 1 b
3 1 c
4 2 d
5 2 e
6 2 f
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |