重新组织数据以计算序列效应

时间:2016-08-03 15:50:00

标签: r for-loop dataframe

我试图在数据集中使用变量的特定顺序 - 效价和 - 基本上将行复制并粘贴到新数据集中。因此,对于每个subID,对于每个valence = 0,如果下一个valence = -1,则将该行复制到名为“sequence”的新数据集。问题是试用顺序是随机的,因此每个subID的顺序是不同的(否则我至少能够根据试验编号编写一个大的块状脚本)。我最初没有提到的一件重要事情:每个subID都会有不同数量的值,因此行数在subID中都不均匀。

就像数据的示例一样:

SubID location valence reaction_time
1     1        0       500
1     1       -1       600
1     0        1       400
1     0        0       500
2     1        1       700
2     1        0       400
2     0       -1       700
2     0        0       400

我几乎是这种事的初学者(我猜它需要成为一个循环?)并且没有一个坚实的起点,所以任何帮助都会非常感激。

谢谢!

2 个答案:

答案 0 :(得分:2)

假设您的数据为d

out <- by(d, d$SubID, function(x) {
    v <- x$valence
    x[which(v[1:(length(v)-1)]==0 & v[2:(length(v))]==-1),]
})
sequence <- do.call(rbind, out)

结果:

> sequence
  SubID location valence reaction_time
1     1        1       0           500
2     2        1       0           400

答案 1 :(得分:1)

我假设你想将data.frame子集化为第1行和第6行。这是一个var selectedUsers = req.body.user; selectedUsers.forEach(function(u){ project.user.push(u._id) }) 解决方案。

for loop

数据

data.table