【发布时间】:2016-08-24 19:46:56
【问题描述】:
***为了提出这个问题,我在下面的示例中删除了一个 Time 列,该列存在于我的实际数据中,该列具有实际时间(尽管标称时间相同,但秒数不同),这导致我的数据每行有一个分数。当我四舍五入这些时间时,我使用 dcast 解决了我的问题:)
我目前正在尝试整理我的数据,但遇到了一些障碍(我是 R 的初学者,大部分时间都是从这个网站学习的)。我想根据匹配人员和症状的标称时间将我的数据转换为在列中显示症状。通过这些数据整理,我将把我的 64,000 个观察数据集减少到大约 8,000 个。我的数据目前如下所示:
Person Nominal.Time Name Score
1 +30 A 6
1 +30 B 9
1 +30 C 3
2 +90 A 1
2 +90 B 5
2 +90 C 2
我能够将我的数据转换为以下内容:
library(reshape2)
WideSymptomData <- dcast(SymptomData,Person+Nominal.Time~Symptom.Name, value.var="Symptom.Score")
Person Nominal.Time A B C
1 +30 6
1 +30 9
1 +30 3
2 +90 1
2 +90 5
2 +90 2
但不幸的是,我在这一点上被难住了。我一直在研究,似乎无法找到下一步如何最终实现这一目标:
Person Nominal.Time A B C
1 +30 6 9 3
2 +90 1 5 2
我认为这个question 可能与我的相似,尽管我无法成功应用它的答案。非常感谢任何指导,谢谢!
【问题讨论】:
-
reshape(data, dir = 'wide', idvar = c('Person','Nominal.Time'), timevar = 'Symptom.Name')
标签: r data.table reshape2