循环遍历R中的数据集并计算变量的出现次数

时间:2017-12-12 11:57:51

标签: r loops

我从心理学研究中发现了一个有趣的数据集(数据集叫做WearingThirt),我想复制结果。我需要将两个变量汇总到一个变量中。这就是我写的:

创建空变量

PinkAndRed = 0

计算穿着粉红色和红色并加1

的人的实例

对于穿着运动衫的我:   PinkAndRed + 1如果:      wearingThirt $ PINKSHIRT == 1穿着T恤$ REDSHIRT == 1

将变量添加到数据集

WearingTShirt $ PinkAndRed

我没有太多R经验(我主要用Python编写)。

2 个答案:

答案 0 :(得分:0)

您的代码在python中比在R中更多.R中的等效代码是您想要做的:

PinkAndRed = rep(0,dim(WearingTShirt)[1])

for(i in 1:dim(WearingTShirt)[1]){
    if((WearingTShirt$PINKSHIRT[i]==1) || (WearingTShirt$REDSHIRT[i]==1))
    {
    PinkAndRed[i] = 1
    }
}

WearingTShirt=cbind(WearingTShirt,PinkAndRed)

你需要回顾一下R的基础知识.R和python之间有无数小的区别,比如循环或条件中的括号,设置一个循环的长度(在上面的代码中用dim你计算数据集的维度和通过执行[1]表示您想要行数... ...

更新

感谢评论我已经意识到,如果你想要粉红色和红色衬衫的个人或衬衫的1为粉红色或红色的变量,以及在其他情况下为0,则不清楚。 / p>

上面的代码适用于变量,包括一个变量中的粉色和红色衬衫。

如果你想要总和,你必须使用cumsum函数,就像在评论中所说的那样

答案 1 :(得分:0)

我不会选择循环,但是:

WearingTShirt$PinkAndRed <- ifelse(WearingTShirt$PINKSHIRT==1 | 
WearingTShirt$REDSHIRT==1,1,0)

根据给出的示例,PinkAndRed听起来更像PinkOrRed。