Joh*_*ene 0 r plyr reshape2 dplyr
说我有以下内容 data.frame
df <- data.frame(letters = c("a, b", "a", "b", "a, c"), value = c(1, 2, 3, 4))
df
#> letters value
#> 1 a, b 1
#> 2 a 2
#> 3 b 3
#> 4 a, c 4
Run Code Online (Sandbox Code Playgroud)
我要拆分/融化到哪个
#> letters value
#> 1 a 1
#> 2 b 1
#> 3 a 2
#> 4 b 3
#> 5 a 4
#> 6 c 4
Run Code Online (Sandbox Code Playgroud)
为了每个单独记录 letters
你可以试试strsplit.拆分字符,,然后重复值字段.
char <- strsplit(as.character(df$letters), ',')
data.frame(letter=unlist(char), value=rep(df$value, sapply(char, FUN=length)))
letter value
#1 a 1
#2 b 1
#3 a 2
#4 b 3
#5 a 4
#6 c 4
Run Code Online (Sandbox Code Playgroud)
根据评论中的@docendo discimus更新,您可以尝试更快的结果,
char <- strsplit(as.character(df$letters), ',', fixed = T)
data.frame(letter=unlist(char), value=rep(df$value, lengths(char)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |