【发布时间】:2017-01-07 03:13:23
【问题描述】:
(这是一个初学者问题,但我在其他地方没有找到答案。相关帖子包括this one、this one 和this one,但不知道如何将这些应用于我的案例。)
当我使用read.dta将STATA格式数据导入R时,出现警告:
> lca <- read.dta("trial.dta")
Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else
paste0(labels, :
duplicated levels in factors are deprecated
这是否仅仅意味着变量(R 中的“因子”)包含重复值?如果是这样,为什么这甚至是一个警告——这不是大多数变量的预期吗?
【问题讨论】:
-
不,这意味着发生了类似
factor(1:3, levels = c(1,1,3))的事情 -
确保没有值变成
NA,但您可以使用droplevels清除重复项。或者可以尝试不同的 Stata 读取功能,例如haven::read_dta。 -
谢谢你们!我尝试了 Haven::read.dta 函数,警告消失了。
-
这个问题是由一个有很多零的国家名称变量引起的。 (如果我删除变量,警告就会消失)。是否因为零被视为重复级别并“弃用”到同一级别?