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

循环遍历R中的数据集并计算变量的出现次数,r,loops,R,Loops,我从一项心理学研究中发现了一个有趣的数据集(数据集被称为Wearingshirt),我想复制这个结果。我需要将两个变量汇总为一个变量。这是我写的: 创建空变量 PinkAndRed=0 计算同时穿粉色和红色衣服的人的实例,并添加1 对于我穿的衬衫: PinkAndRed+1如果: Wearingshirt$PINKSHIRT==1或Wearingshirt$REDSHIRT==1 向数据集添加变量 穿衬衫$PinkAndRed 我没有太多的R经验(我主要是用Python编写的)。您的代码更多地是

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

创建空变量 PinkAndRed=0

计算同时穿粉色和红色衣服的人的实例,并添加1 对于我穿的衬衫: PinkAndRed+1如果: Wearingshirt$PINKSHIRT==1或Wearingshirt$REDSHIRT==1

向数据集添加变量 穿衬衫$PinkAndRed


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

您的代码更多地是用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

上面的代码用于一个变量,该变量在一个变量中包含粉色和红色衬衫


如果您想要求和,您必须使用cumsum函数,正如评论中所说的那样

我不会选择循环,但是:

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

Wearingshirt$PinkAndRed我想你需要阅读一下r中的一些基础知识。除了
PinkAndRed=0
之外,您的任何代码都无法工作。虽然此代码可能工作,但实际上并不是您在R中通常的工作方式。它看起来像一个简单的
cumsum
可以更快、更简单、更可读。看起来您从未在代码中引用索引
i
,我这样做是为了将代码从python“transrante”到R。谢谢
i
我忘了