我有一个非常基本的问题,导入STATA文件到R,我尝试搜索论坛,但找不到我在寻找什么。
我有一个DHS文件(AR - HIV测试结果),它只有以下几个字段,在使用外部包导入R之后:
AR_HIV_dataset <- read.dta("RWAR71FL.DTA") #HIV test result file我的问题是如何根据变量(如HIV03 )的值来过滤dplyr的某些情况。使用structure命令,变量HIV03显示为"HIV阴性“、"HIV阳性”等:
$ hiv03 :因子w/ 8“艾滋病毒阴性”,.:1 1 1
但是实际存储的数据值只是0或1。然而,我不能引用这些数值,因为filter命令似乎需要我指定标签值。
filter(AR_HIV_dataset,hiv03=="hiv negative")这将返回所需的情况,但我希望能够使用以下命令(使用实际值)
filter(AR_HIV_dataset, hiv03==0) 但是如果我这样做,这将返回一个错误。
您能告诉我需要更改什么才能使用第二行代码吗?
提前感谢您的支持。
发布于 2017-10-06 09:12:30
使用haven包(http://haven.tidyverse.org/)导入stata文件可能很有帮助,特别是如果您使用的是dplyr,因为这两个包都是潮间带的一部分。在研究将stata等中的变量导入R时,关于语义学的格言可能特别有用。
发布于 2017-10-06 00:52:42
两种可能的解决办法是:
filter(AR_HIV_dataset, as.numeric(hiv03)==0)或者,更好一些
filter(AR_HIV_dataset, hiv03 == levels( hiv03 )[1] )https://stackoverflow.com/questions/46595759
复制相似问题