如何使用“强制转换”从作为测试的每一行转到参与者的每一行

时间:2011-04-27 23:17:11

标签: r

我有一个实验的数据集,其中每一行都是一个特定的测试。每个参与者都做了多次测试每个参与者都由参与者列中的唯一ID标识。

我想重新制作我的数据,以便每一行都是一个参与者,数据在列中。我尝试使用reshape库中的强制转换,但我的命令不起作用:

cast(myData, particiant ~ Age)

例如,要获得各自年龄段的参与者行。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在没有数据的情况下,这是我对你的问题的最好猜测,并且假设我的猜测是正确的。

# create dummy data
mydf = data.frame(participant = rep(1:3, each = 3),
         test   = rep(letters[1:3], times = 3),
         result = sample(100, 9, replace = T))

以下是数据框的外观

    participant test result
1           1    a     20
2           1    b     17
3           1    c     63
4           2    a     60
5           2    b     67
6           2    c     16
7           3    a     49
8           3    b     64
9           3    c     75

现在,如果您希望每一行都包含参与者的所有测试结果,请按以下方式cast进行操作。

mydf2 = cast(data = mydf, participant ~ test, value = "result")

这为我们提供了如下所示的数据框

  participant  a  b  c
1           1 20 17 63
2           2 60 67 16
3           3 49 64 75

如果您可以dput数据框,那么为您的问题提供更自定义的解决方案并诊断错误会更容易。希望这很有用