我从心理学研究中发现了一个有趣的数据集(数据集叫做WearingThirt),我想复制结果。我需要将两个变量汇总到一个变量中。这就是我写的:
PinkAndRed = 0
对于穿着运动衫的我: PinkAndRed + 1如果: wearingThirt $ PINKSHIRT == 1穿着T恤$ REDSHIRT == 1
WearingTShirt $ PinkAndRed
我没有太多R经验(我主要用Python编写)。
答案 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。