0

我希望你不会觉得我的问题太傻,我做了很多研究,但似乎我不知道如何解决这个非常烦人的问题。

好吧,我有一个实验中 6 个参与者 (P) 的数据,每个参与者有 50 个试验 (T) 和 10 个条件 (C)。所以我想在 r 中创建一个数据框,允许我放置这些数据。这个data.frame应该有3个因素(P,T和C),所以总行数(P*T*C)。对我来说,困难在于创建这个,因为我有 6 个参与者的数据在 100 个 obs(T) 和 10 个变量(C) 的 6 个数据帧中。我想先用这些因子创建空数据集,然后根据因子 P、T 和 C 复制 6 个 data.set 的值。任何帮助将不胜感激,我是 r 的新手。

谢谢你。

4

1 回答 1

3

好的; 首先,我们为所有参与者创建一个大数据框:

result<-rbind(dfrforparticipant1, dfrforparticipant2,...dfrforparticipant6) #you'll have to fill out the proper names of the original data.frames

接下来,我们为参与者 ID 添加一列:

numTrials<-50 #although 100 is also mentioned in your question
result$P<-as.factor(rep(1:6, each=numTrials))

最后,我们需要从“宽”格式变为“长”格式(我假设您保存每个条件结果的列名称为 C1、C2 等;我还假设您的原始 data.frames 已经保存一个名为 T 的列来表示试验),像这样(未经测试,因为您没有提供示例数据):

orgcolnames<-paste("C", 1:10, sep="")
result2<-reshape(result, varying=list(orgcolnames), v.names="val", idvar=c("T","P"), timevar="C", times=seq_along(orgcolnames), direction="long")

你想要的现在在result2.

于 2011-10-05T16:04:33.790 回答