将stata文件导入到R中,变量必须使用标签进行过滤,而不是实际的数值
我有一个关于将STATA文件导入R的非常基本的问题,我尝试搜索论坛,但找不到我在找的内容。将stata文件导入到R中,变量必须使用标签进行过滤,而不是实际的数值
我有一个DHS文件(AR - HIV测试结果),它只是有几个字段,如下所示,使用外包导入到后R:
AR_HIV_dataset <- read.dta("RWAR71FL.DTA") #HIV test result file
我的问题是关于如何筛选某些情况下,与dplyr基于一个变量的值例如HIV03。使用结构命令,变量HIV03显示为“HIV阴性”,“HIV阳性”等:
$ hiv03:具有8个水平的因子“hiv阴性”,..:1 1 1 1 1 1 1 1 1 1 ...
但实际存储的数据值只是0或1.但是,我不能引用这些数值,因为过滤器命令似乎需要我指定标签值,例如
filter(AR_HIV_dataset,hiv03=="hiv negative")
这将返回所需的情况,但我想可以使用下面的命令来代替(使用实际值)
filter(AR_HIV_dataset, hiv03==0)
但如果我这样做,这将返回一个错误。
你能让我知道我需要改变什么才能使用第二行代码吗?
在此先感谢您的支持。
使用haven
包(http://haven.tidyverse.org/)导入STATA文件可能会有所帮助,特别是如果你正在使用dplyr
都给出包是tidyverse的一部分。 vignette on semantics可能会特别有用,当查看如何处理stata等变量时导入到R.
两个可能的解决方案是:
filter(AR_HIV_dataset, as.numeric(hiv03)==0)
或者,有些更好的
filter(AR_HIV_dataset, hiv03 == levels(hiv03)[1])
谢谢你的回应。我尝试过,但它似乎并没有工作。 –
非常感谢用户429791,我试过但没有工作(我没有解释我自己,我不这么认为),但是现在我找到了一个使用天堂的解决方案,所以让我们来看看。再次感谢。 –
嗨,你能提供一个输出说明以下语句**“...但实际的数据值存储为0或1“**。 – ANG
非常感谢,让我试试可能是解决方案的避风港套餐。 –
亲爱的markdly,谢谢 - 我用避风港,而它的工作现在列hiv03现在显示值0或1,而不是“hiv负面”,“hiv ...”等。非常感谢。我无法找到一个按钮来投票这个答案?再次感谢 –