【发布时间】:2021-08-04 22:34:55
【问题描述】:
我正在尝试将我的数据重塑为更广泛的数据,尝试将数据框准备好进行主题内分析。它目前适用于主体间分析。 到目前为止我找到的最有用的答案是:Using the reshape function in R with multiple matching rows
我的数据如下所示:
SubjID ITEM SubjGroup Strength Timing Accuracy RT
1 dance 1 1 200 1 1234
1 dance 1 2 200 0 430
1 dance 1 1 400 1 450
1 dance 1 2 400 1 200
2 dance 2 1 200 0 300
2 dance 2 2 200 0 755
2 dance 2 1 400 1 550
2 dance 2 2 400 1 520
我需要的是基本上删除强度列并用一个额外的 RT 列替换它,以便 RT1 指的是我在 Strength1 下得到的值,RT2 是指我在 Strength2 下得到的值,并且为了准确性做同样的事情。对于每个主题,每个项目重复 4 次(在强度 + 时间的两种不同组合下),这意味着到重塑结束时,每个动词和每个主题将有 2 行,而不是每个项目和每个主题 4 行。像这样:
SubjID ITEM SubjGroup Timing RT1 RT2
1 dance 1 200 1234 430
1 dance 1 400 450 200
2 dance 2 200 300 755
2 dance 2 400 550 520
同时删除准确性列(如果它使事情变得更容易)或添加第二个。
我尝试了一个简单的重塑公式(与上面链接中 OP 发布的公式相同),它以某种方式在具有相同表标题但只有一个主题 ID 的类似数据框上工作:reshape(datafr, idvar = c("ï..Subject", "Timing", "Group", "ITEM"), timevar= "TMS", direction = "wide") 当我尝试它上面的数据确实创建了正确的列,但它是空的,我收到了警告消息。我也尝试过使用 Pivot,但它不起作用。
谢谢!
【问题讨论】:
-
您能否 (a) 编辑您的示例输入以便在 R 中轻松导入?
dput()是最简单的,如果您有样本数据dput(your_data[1:8, ])将制作前 8 行的复制/粘贴版本。最好知道您显示的空白是空字符串、NA值还是其他内容。 -
(b) 您能否明确显示您正在寻找的样本输入的输出?我不知道您所说的
Strength1和Strength2是什么意思,并且“准确度将指两者之一” 令人困惑——哪一个,我们怎么知道哪一个?您可能需要编辑示例输入以使其充分说明问题。 -
另外 “每个动词和每个主语将有 2 行,而不是每个项目 4 行” - 我看到了
SubjID,所以我可以猜出主语是什么. “动词”是什么意思? -
@GregorThomas 完成,谢谢!
-
@GregorThomas 我注意到我必须复制 Accuracy 列或添加第二个列,但如果它使事情变得更容易,我可以去掉它。
标签: r dataframe pivot reshape dcast