使用read_dta,haven软件包后修复因子中的重复级别

时间:2016-06-06 15:40:05

标签: r

我正在使用网上提供的世界银行(LSMS-ISA)对尼日利亚农民的调查数据。数据是.dta,我正在使用避货包进口。

当我导入文件时,我收到错误消息“不推荐使用因子中的重复级别”。我理解这个问题,我能够解决它(见下文),但我的解决方案似乎非常低效。如果有人能提出更好的解决方案,我将非常感激,因为我可能还需要修复其他数据集。

这就是我的尝试:

数据文件: https://www.dropbox.com/s/gkuw01vlr68j2sw/secta1_harvestw1.dta?dl=0

这给出了错误

setTaskDidReceiveAuthenticationChallengeBlock

我的解决方案:

loc <-  read_dta(file.path(dataPath, "/secta1_harvestw1.dta")) %>%
transmute(state = as_factor(state), region_lsms = as_factor(lga))

非常感谢!

1 个答案:

答案 0 :(得分:0)

假设您的重复级别因素被称为fac,那么我认为这应该有效:

fac <- factor(fac, levels = unique(fac))

至少,它适用于我的玩具示例;你还没有提供一个可重复的例子,所以我无法用它进行测试。