(这是一个初学者问题,但我在其他地方找不到答案。相关帖子包括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
它只是意味着变量(&#34;因素&#34;在R中)包含重复值?如果是这样,为什么这甚至是一个警告 - 这是大多数变量的预期?
答案 0 :(得分:0)
试试这个:
don <- read.dta("trial.dta",convert.dates = T,convert.factors = F)
for(i in 1:ncol(don)){
valuelabel<-attributes(don)[[6]][i]
if(valuelabel!=""){
label<-paste("names(attributes(don)[[11]]$",valuelabel,")",sep="")
level<-paste("attributes(don)[[11]]$",valuelabel,sep="")
labels=(eval(parse(text=label)))
levels=(eval(parse(text=level)))
if(sum(duplicated(labels)) > 0){
doublon<-which(duplicated(labels))
remplace<-levels[doublon]
valueremplace<-levels[unique(labels)==names(remplace)]
don[don[,i]%in%remplace,i]<-valueremplace
labels<-unique(labels)
levels<-levels[labels]
}
don[,i]<-factor(don[,i],levels=levels,labels=labels)
}
}