根据R中一列中分割的字符串重新整形数据帧

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做到这一点,但没有任何成功.做这个的最好方式是什么?

Mai*_*ura 5

既然您要求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)


mne*_*nel 5

一种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)