【发布时间】:2017-04-30 22:35:56
【问题描述】:
我在 R 中有一堆看起来像这样的数据框:
print(output[2])
Button Intensity Acc Intensity RT Time tdelta SubjectID CoupleID PrePost
1: 0 30 0 0.0 0 83325.87 0.000 1531 153 Post
2: 1 30 1 13.5 0 83362.65 36.782 1531 153 Post
3: 1 30 1 15.0 0 83376.68 14.027 1531 153 Post
4: 1 30 1 6.0 0 83392.27 15.585 1531 153 Post
5: 1 30 1 15.0 0 83398.77 6.507 1531 153 Post
print(output[1])
[[1]]
Button Intensity Acc Intensity RT Time tdelta SubjectID CoupleID PrePost
1: 0 30 0 0.0 0 77987.93 0.000 1531 153 Pre
2: 1 30 1 13.5 0 78084.57 96.639 1531 153 Pre
3: 1 30 1 15.0 0 78098.62 14.054 1531 153 Pre
4: 1 30 1 6.0 0 78114.13 15.508 1531 153 Pre
5: 1 30 1 15.0 0 78120.67 6.537 1531 153 Pre
我想将它们组合成一个具有以下逻辑和格式的大数据框:
SubjectID CoupleID PrePost Miss1RT Miss2RT Miss3RT Hit1RT Hit2RT Hit3RT
1531 153 Post 0.00 NA NA NA 36.78 14.027
1531 153 Pre 0.00 NA NA NA 96.638 14.054
如果 Button == 0,则为 Miss,如果 ==1,则为 Hit。所以,它应该是这样的:
for row in output[i].rows:
if Button ==0:
Miss1RT ==tdelta
elif Button ==1;
Miss1RT =='NA'
然后是翻转版本,如果 Button 为 1,则 Hit[i]RT 为 tdelta,否则为“NA”。
每个数据帧有 26 行,每一行是命中或未命中,因此将有 26 个未命中列和 26 个命中列,每个 SubjectID 有两行 - 一行用于 Pre,一行用于 Post。所以最终输出的列标题将是:
SubjectID CoupleID PrePost Miss1RT Miss2RT ...Miss26RT Hit1RT Hit2RT ... Hit26RT
我是 R 新手,正在努力学习正确的语法。
【问题讨论】:
-
你只想看前两个
Hits和Misses吗?或者你想看看所有可能的? IE。您想为您的Post、CoupleID = 153使用Hit2RT = 15.585吗? -
我想要 Hit1-26RT 和 Miss1-26RT 的每个 Pre/Post SubjectID 相同,以便 26 Button==1 或 0 行中的每一个在 Hit[i]RT 或Miss[i]RT 和另一个中的“NA”。为了清楚起见,编辑了帖子。
-
那么
Hit1RT应该是NA吗?然后Hit2RT成为36.78? -
facepalm 是的。让我解决这个问题。
标签: r csv dataframe data-processing