如何解决R:expss 包 - “重新编码”在没有 do_if 的情况下不起作用?
我正在尝试使用 expss 将重新编码为函数。当我复制 https://gdemin.github.io/expss/#example_of_data_processing_with_multiple-response_variables 中所示的示例时 我注意到以下行为: 包含 do_if 语句的代码完美运行:
w = w %>% do_if(cell == 1,{recode(a1_1 %to% a1_6,other ~ copy) %into% (h1_1 %to% h1_6)})
没有 do_if 语句
w = w %>% recode(a1_1 %to% a1_6,other ~ copy) %into% (h1_1 %to% h1_6)
这是正确的吗?
将变量标签转移到新创建的变量(参见 mutate)也很好
感谢您提供有关如何正确使用的建议。
解决方法
Inside do_if
recode
在 data.frame 的上下文中进行评估。当没有上下文时,recode
将在全局环境中进行评估。它在 data.frame 中看不到 a1_1,... 变量。
好消息是有一个 compute
函数可用于对 data.frames 进行任意操作:
w = w %>%
compute({
recode(a1_1 %to% a1_6,other ~ copy) %into% (h1_1 %to% h1_6)
})
至于标签复制,您可以使用参数 'with_labels' = TRUE 或默认情况下具有 'with_labels' = TRUE 的别名 'rec':
w = w %>%
compute({
rec(a1_1 %to% a1_6,other ~ copy) %into% (h1_1 %to% h1_6)
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。