yod*_*230 5 r reshape dataframe
我有以下数据结构
ID Type Values
1 A 5; 7; 8
2 A 6
3 B 2; 3
Run Code Online (Sandbox Code Playgroud)
我想使用R将其重塑为以下内容:
ID Type Values
1 A 5
1 A 7
1 A 8
2 A 6
3 B 2
3 B 3
Run Code Online (Sandbox Code Playgroud)
我一直试图找出如何用plyr做到这一点,但没有任何成功.做这个的最好方式是什么?
既然您要求plyr解决方案,请转到:
ddply(df, .(Type), function(foo) {
values <- unlist(strsplit(c(foo$Values), ";"))
data.frame(Type = rep(unique(foo$Type), length(values)), Values = values)
})
Run Code Online (Sandbox Code Playgroud)
一种data.table编码优雅的方法
library(data.table)
DT <- data.table(dat)
DT[, list(Value = unlist(strsplit(as.character(Values), '; '))), by = list(ID, Type)]
Run Code Online (Sandbox Code Playgroud)