如何创建一个包含3个因子的data.frame?

时间:2011-10-05 14:59:56

标签: r dataframe

我希望你不会发现我的问题太傻了,我做了很多研究,但似乎我无法弄清楚如何解决这个非常烦人的问题。

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

的新手

谢谢。

1 个答案:

答案 0 :(得分: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等;我也假设你的原始数据。帧已经有一个名为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