Can';t循环通过R中向量子集的值

Can';t循环通过R中向量子集的值,r,function,aggregate,R,Function,Aggregate,我很抱歉,如果这个问题真的很基本,我仍然是一个完全的新手与R 在我的数据集中,观察结果来自于在6个月的时间内每月被问及对1到10分的满意度的人 没有义务参与,所以他们有时回答,有时不回答 我试图建立一个变量来计算他们回答问题的次数。我认为如果答案是0,他们会回答。 首先,我从我的数据集中选择了相关变量,并将它们存储到一个单独的数据框中(不要关注名字中的“平均”),为了这个问题的目的,只考虑这是他们这个月的唯一答案: monthly_satsset.seed(123) df可能有一个更简单的方法来

我很抱歉,如果这个问题真的很基本,我仍然是一个完全的新手与R

在我的数据集中,观察结果来自于在6个月的时间内每月被问及对1到10分的满意度的人

没有义务参与,所以他们有时回答,有时不回答

我试图建立一个变量来计算他们回答问题的次数。我认为如果答案是0,他们会回答。

首先,我从我的数据集中选择了相关变量,并将它们存储到一个单独的数据框中(不要关注名字中的“平均”),为了这个问题的目的,只考虑这是他们这个月的唯一答案:

monthly_sats
set.seed(123)

df可能有一个更简单的方法来做这件事。如果你解释了你的数据结构,那么建议一种方法就更容易了。您是否有一个data.frame,其中行是个人,列是每月的响应?是的,就是这样,对不起。但莱恩的回答起了作用,现在起作用了。谢谢您的假设是正确的(对不起,我应该指定它)。这很有效,非常感谢你的帮助!
monthly_sats <- select (donnees, average_satisfaction_march, average_satisfaction_april, 
                        average_satisfaction_may, average_satisfaction_june, 
                            average_satisfaction_july, average_satisfaction_august)
donnees$monthly_sat_count <- 0
for (i in monthly_sats) {
  for(j in i) {
    if (j > 0) {
      donnees$monthly_sat_count <- donnees$monthly_sat_count + 1
    }
  }
}
for (i in donnees[c("average_satisfaction_march", "average_satisfaction_april",
                        "average_satisfaction_may", "average_satisfaction_june",
                            "average_satisfaction_july", "average_satisfaction_august")]) {
  for(j in i) {
    if (j > 0) {
      donnees$monthly_sat_count <- donnees$monthly_sat_count + 1
    }
  }
}
for (i in donnees[c("average_satisfaction_march", "average_satisfaction_april",
                    "average_satisfaction_may", "average_satisfaction_june",
                        "average_satisfaction_july", "average_satisfaction_august")]) {
  if (i > 0) {
    donnees$monthly_sat_count <- donnees$monthly_sat_count + 1
}
set.seed(123)
df <- as.data.frame(matrix(sample(c(0:10), 60, TRUE), ncol = 6))
colnames(df) <- wrapr::qc(average_satisfaction_march, average_satisfaction_april, 
               average_satisfaction_may, average_satisfaction_june, 
               average_satisfaction_july, average_satisfaction_august)

df$donnees <- c(1:10)
df <- df[,c(7,1:6)] 

df$timesanswered <- apply(df[,2:7], 1 , function(x) {length(x[x>0])})