【发布时间】:2020-07-22 13:41:31
【问题描述】:
我有一个数据集,其中包含多个参与者对情绪面孔的反应。参与者以他们认为自己看到的情绪回应。每个参与者进行了多次试验。想象一下,有 4 个答案可能性:厌恶、悲伤、愤怒和中立。 我想计算每个参与者选择每个答案可能性的比例。当我最近问了一个类似的问题时,我得到了一个解决方案,后来证明它不适合我的需要。因此,我提出了这个新问题。
以下是一些示例数据:
Response <- c("Disgust", "Sadness", "Disgust", "Anger", "Anger", "Neutral", "Anger", "Disgust", "Happiness") #create example data
ResponseNum <- c(1,2,1,3,3,4,3,1,5) #Response, but expressed in Numbers
ppnum <- c(1,1,1,2,2,2,3,3,3)
df2a_anger <- as.data.frame(cbind(Response, ResponseNum, ppnum)) #create dataframe
df2a_anger$ResponseNum <- as.numeric(as.character(df2a_anger$ResponseNum)) # make numeric
下面是一些示例代码:
library(dplyr)
df2a_anger %>%
count(ppnum, ResponseNum) %>%
group_by(ppnum) %>%
mutate(n = n/sum(n))
我发现自己试图解决我的问题的另一种方法涉及聚合函数,但是两者都遇到相同的问题: 当未选择响应选项时,它们不计算在内: 例如,参与者 1 选择厌恶 66% 和悲伤 33% 的代码输出。我还希望它输出参与者 1 选择中立和愤怒的 0%。 有谁知道如何让 R 做到这一点?
【问题讨论】:
标签: r