【发布时间】:2018-05-10 10:34:06
【问题描述】:
我有以下数据集:
dataset1 <- data.frame(
bnames = c("T1", "T1", "T2", "T3", "T3"),
events = c("I", "O", "I", "I", "O"),
freq = c(1,2,3,4,5))
我想将此数据集转换为宽格式,我的方法(使用reshape 包):
dataset2 <- melt(dataset1, id.vars = c("bnames", "events"))
dataset2 <- dataset2[c("bnames", "events", "value")]
names(dataset2) <- c("bnames", "events", "freq")
dataset2的内容:
bnames events freq
1 T1 I 1
2 T1 O 2
3 T2 I 3
4 T3 I 4
5 T3 O 5
但是bnames 列下应该总是有两行同名。一行带有I,另一行带有O 在events 列下。如果原始数据集(dataset1)中不存在相应的值,则freq 下的值应始终为 0。所以在这种情况下我想要的结果应该是:
bnames events freq
1 T1 I 1
2 T1 O 2
3 T2 I 3
4 T2 O 0
5 T3 I 4
6 T3 O 5
如何做到这一点?谢谢
【问题讨论】:
-
dataset1和dataset2有什么区别? -
@mtoto
dataset1是原始数据,dataset2是整理后的最终数据。 -
它们在我看来是一样的