【发布时间】:2017-12-05 11:09:35
【问题描述】:
我目前正在从 Stata 迁移到 R,尝试在 R 上做我在 Stata 上所做的事情,从头开始。 我从 Stata 导入了原始数据,不得不转储我的标签以避免它们覆盖变量值,我现在正尝试在 R 中重新生成它们,以及从多级变量再次生成我的虚拟变量。
所以我这样做了:
newvar<-basevar
newvar<-mapvalues(newvar, c(1, 2, 3, 4, 5), c(1, 0, 0, 0, 0 ))
newvar <- factor(newvar,
levels = c(0,1),
labels = c("Bad", "Good"))
describe(newvar)
这非常有效,我得到了我所期望的结果,一个带有频率和比例的正常描述结果,正确标记。
然后我意识到我的 0/1 值已被 1 而不是 0 和 2 而不是 1 覆盖。
这是标签在 R 中的正常工作方式吗? 有没有办法在保留变量初始值的同时添加标签?
我习惯于使用 0 和 1 来提高编码效率(并且由于 Stata 倾向于将 1/2 解释为数字,这增加了返回虚拟变量的额外步骤,但是因为我将变量设置为 R 中的因子,我不应该有这种问题),并标记以获得完全可以理解的结果(表格和图表)。
我应该学会以不同的方式使用 R 吗?
【问题讨论】: