我想重塑我的原始数据,并且我已经使用了一段时间来解决此问题,但现在遇到了更复杂数据集的问题。
我的数据看起来像这样
id gender rt
1 2 23, 50, 45, 60, 10
2 1 12, 4, 6
我想将其转换为长格式,但遇到了麻烦,因为在这种情况下我有单元格(rt
),我想为每个id
做长。
以下是我希望它的样子:
id gender rt
1 2 23
1 2 50
1 2 45
1 2 60
1 2 10
2 1 12
2 1 4
2 1 6
(这里我对其他数据的新颖复杂性是rt
的长度因id
}而异。
我尝试使用reshape
和ldply
但是无法做到这一点我想做的事情因为我的长期数据是一个有很多观察而非许多观察的单元格rt
单个观察的列。
如何将数据转换为所需格式?
答案 0 :(得分:1)
l<-strsplit(mydf$rt, split = ",")
data.frame(id = rep(mydf$id, sapply(l, length)),gender= rep(mydf$gender, sapply(l, length)), rt = unlist(l))
答案 1 :(得分:1)
我们可以使用cSplit
library(splitstackshape)
cSplit(df1, 'rt', ', ', 'long')