首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将stata文件导入R中,变量必须使用标签而不是实际数值进行过滤

将stata文件导入R中,变量必须使用标签而不是实际数值进行过滤
EN

Stack Overflow用户
提问于 2017-10-05 22:33:23
回答 2查看 581关注 0票数 0

我有一个非常基本的问题,导入STATA文件到R,我尝试搜索论坛,但找不到我在寻找什么。

我有一个DHS文件(AR - HIV测试结果),它只有以下几个字段,在使用外部包导入R之后:

代码语言:javascript
复制
    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命令似乎需要我指定标签值。

代码语言:javascript
复制
    filter(AR_HIV_dataset,hiv03=="hiv negative")

这将返回所需的情况,但我希望能够使用以下命令(使用实际值)

代码语言:javascript
复制
    filter(AR_HIV_dataset, hiv03==0) 

但是如果我这样做,这将返回一个错误。

您能告诉我需要更改什么才能使用第二行代码吗?

提前感谢您的支持。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-06 09:12:30

使用haven包(http://haven.tidyverse.org/)导入stata文件可能很有帮助,特别是如果您使用的是dplyr,因为这两个包都是潮间带的一部分。在研究将stata等中的变量导入R时,关于语义学的格言可能特别有用。

票数 0
EN

Stack Overflow用户

发布于 2017-10-06 00:52:42

两种可能的解决办法是:

代码语言:javascript
复制
filter(AR_HIV_dataset, as.numeric(hiv03)==0)

或者,更好一些

代码语言:javascript
复制
filter(AR_HIV_dataset, hiv03 == levels( hiv03 )[1] )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46595759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档