微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 R if 语句区分变量的两个选项

如何解决如何使用 R if 语句区分变量的两个选项

我是 R 新手,想了解如何使用 if 语句/if-else 函数来区分变量的两个选项,在我的情况下是性别。具体来说,我想使用 this 数据集来查看男性和女性在其姓名上拥有银行账户是否存在差异(-1 和 -2 是女性和男性,从 1:5 开始是选项金融账户)。

dput(Finaccount)

> dput(head(Finaccount))
structure(list(finaccount = c("0","0","2 6","0"),genderresp = c(-2,-1,-2,-2)),row.names = c(NA,6L),class = "data.frame")

接下来,我将创建一个卡方表,但我也会找到有关如何显示数据方向的任何有用建议(因此不仅意义重大,而且一个性别的名字上有更多的银行账户比其他人)。

我正在使用其他方法来区分性别,主要是通过创建两个带有子集或 grepl 的数据集,如下例所示,但我假设有更简单的方法

RespSeason <-- data.frame(respjobhh,gendercleaned)
View(RespSeason)                                                              
RespseasonCleaned = na.omit(RespSeason)                                 
View(RespseasonCleaned)                                                             
Seasonwoman <-- subset(RespseasonCleaned,gendercleaned == "-2")                    
Seasonmen<-- subset(RespseasonCleaned,gendercleaned == "-1")
gender = hh_complete_fixed_cleaned[,22 ]
gendercleaned = na.omit(gender)jobhh = hh_complete_fixed_cleaned[,128]
jobhhcleaned = na.omit(jobhh)
sapply(jobhhcleaned,mean,na.rm = TRUE)

data.frame(jobhh,gendercleaned)
View(jobhh,gendercleaned) 
genderjobbhh <-- data.frame(jobhh,gendercleaned)
View(genderjobbhh)

malehh <--genderjobbhh[!grepl('2',genderjobbhh$gendercleaned),]
View(malehh)
sapply(malehh,na.rm = TRUE)
femalehh <--genderjobbhh[!grepl('1',]
View(femalehh)
sapply(femalehh,na.rm = TRUE)

提前感谢您的贡献

解决方法

如果您想通过一个群体获得均值,以下内容可能会有所帮助:

library(tidyverse)

df %>%
 mutate(gender = if_else(gender == -1,"male",if_else(gender == -2,"female","unknown"))) %>%
 group_by(gender) %>%
 summerize(mean_gender = mean(gender))

library(tidyverse)

df %>%
 mutate(gender = as.character(gender),gender = recode(gender,"-1" = "male","-2" = "female")) %>%
 group_by(gender) %>%
 summerize(mean_gender = mean(gender))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。