【发布时间】:2021-02-04 10:14:19
【问题描述】:
您好,我正在尝试编写一个代码/函数,它可以为我提供每个数据集的一组分数的平均值/平均值,但我需要一些帮助。
下面是一个例子。我需要这个函数来给我分数的总和。参与者可以在 0-101 的范围内进行选择。但是对于数字 2、5 和 6。我需要取相反的分数。最后我需要取平均值。所以分数除以6。 预期结果(答案)得分 = 226,平均值为 37.667
| data | Question | Scores |
|---|---|---|
| 1 | ''I feel tense'' | 76 |
| 2 | ''I am calm'' | 90 |
| 3 | ''I am excited'' | 52 |
| 4 | ''I am worried'' | 65 |
| 5 | ''I am satisfied'' | 90 |
| 6 | ''I am relaxed'' | 90 |
问题是我需要编写通用代码,以便我可以将它用于我拥有的每个数据集。因为每个参与者的问题都是随机给出的。例如(第一“我感到紧张”)可以在第 5 位等等。因此,我认为我需要一个 if else 语句,但我是 R 的初学者。也许(如果''我很平静'',是否还要这样做?)
我编写了一个有效的代码!但这不是很普遍,因为我必须更改每个数据集以匹配问题。非常感谢您提供一些见解或帮助编写此函数。
我的代码适用于一个数据集,它有点长而且看起来很糟糕。它也是基于我在 Excell 中处理的实际数据,这就是为什么它的命名不同。(数据 c 和数据 w 只是让我可以访问我想要的特定位置)
Data_c = DATA1$choice #Change here!
Data_w = DATA2$word
我必须根据是否需要反转分数来更改每个问题。我注释掉了我不使用的内容。
Q1 = abs(Data_c[1]-101)
#Q1 = (Data_c[1])
#Q2 = abs(Data_c[2]-101)
Q2 = (Data_c[2])
Q3 = abs(Data_c[3]-101)
#Q3 = (Data_c[3])
Q4 = abs(Data_c[4]-101)
#Q4 = (Data_c[4])
#Q5 = abs(Data_c[5]-101)
Q5 = (Data_c[5])
#Q6 = abs(Data_c[6]-101)
Q6 = (Data_c[6])
df1 <- data.frame(Questions = Data_w,scores = c(Q1, Q2, Q3, Q4, Q5, Q6))
sum = df1$scores[1]+df1$scores[2]+df1$scores[3]+
df1$scores[4]+df1$scores[5]+df1$scores[6]
A = mean(sum/6)
提前感谢您阅读本文并提供见解
【问题讨论】:
-
我不明白这些分数应该如何加起来为 62。与此相关的是,您所说的“反向分数”也不清楚:101 - 分数?
-
您的代码将函数
sum替换为一个变量。 从不使用与函数相对应的变量名。
标签: r function for-loop if-statement