【发布时间】:2019-09-28 12:05:02
【问题描述】:
我目前正在尝试分析一些调查数据。 我的四个问题让我很头疼: 它们是封闭式问题(a、b、c 或 d =1、2、3 或 4) 总是有一个正确的答案,两个“还不错”的答案和一个完全错误的答案。 基本上我想做的就是给正确的1分,0为“不是真的但是......”和-1为错误的答案。
很确定 ifelse 不会让我走得太远,因为后果是二元的。 我试图重新编码,但这会导致另一个问题: 有时答案 A 是正确的,B 是完全错误的,有时 C 是好的,D 是错误的等等。
所以我不能只使用这样的东西:
Data <- apply(Data, 2, function(x) {x <- recode(x,"1=0; 2=-1; 3=0; 4=1"); x})
由于我只有 4 个问题,我会一一重新编码,但我不知道这样做很热 (当我尝试像 Data§Question1 这样的东西时总是会出错)
应用错误(Data$Question1, 2, drop = F, function(x) { : dim(X) 的长度必须为正
【问题讨论】:
-
你试过嵌套
ifelse吗?你能添加一些示例数据吗? -
看看
dplyr::case_when,或switch -
这两个选项可以正常工作,但我最大的问题是,它正确的值和每个问题不会改变的值。假设问题 1 的正确答案值为 1,错误值为 3,但问题 2 反之亦然……此外,这可以提供一些示例数据: Questions
-
您需要先融合/收集/pivot_wider 数据以获得更好的控制,然后再映射 case_when/nested_ifelse 或其他任何功能。
-
@EarlGrey。您不应该使用 cmets 来澄清您的问题。而是使用edit。
标签: r