首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个具有4个级别的新变量

创建一个具有4个级别的新变量
EN

Stack Overflow用户
提问于 2018-03-19 07:39:47
回答 3查看 79关注 0票数 0

我的数据集中有两个变量,我想将college_gradsex组合起来创建sex_grad。这些级别应如下:

  • 男毕业生
  • 女毕业生
  • 男非毕业生
  • 女非毕业生

collegegrad有两个级别:

  • 不是

sex有两个级别:

  • 男性
  • 女性

我应该如何处理所需的组合来支持4个级别?我知道如何将mutateifelse一起使用,但这只会创建两个变量。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-19 07:49:27

使用paste而不是ifelse

代码语言:javascript
复制
college_grad = c("Graduate", "Non-graduate")
sex = c("Male", "Female")
df <- expand.grid(college_grad = college_grad, sex = sex)
df$sex_grad <- with(df, paste(sex, college_grad))
df

#   college_grad    sex            sex_grad
# 1     Graduate   Male       Male Graduate
# 2 Non-graduate   Male   Male Non-graduate
# 3     Graduate Female     Female Graduate
# 4 Non-graduate Female Female Non-graduate

编辑:这个对应于您的编辑。

代码语言:javascript
复制
college_grad = c("Yes", "No")
sex = c("Male", "Female")
df <- expand.grid(college_grad = college_grad, sex = sex)
df$sex_grad <- with(df, ifelse(college_grad == "Yes", paste(sex, "Graduate"), paste(sex, "Non-graduate")))
df
票数 0
EN

Stack Overflow用户

发布于 2018-03-19 07:49:52

联合起来可能意味着几件事。如果没有可以处理的数据集和您想要的输出的示例,那么回答您的问题就更难了。

如果要将列添加到一起,并保留所有现有列,则:

代码语言:javascript
复制
library(tidyverse)

mtcars %>% 
  mutate(
    mpg_am = mpg + am 
  )

如果要删除现有列,请将mutate替换为transmute

如果要将变量收集到列中,则:

代码语言:javascript
复制
mtcars %>%
  rownames_to_column("car_names") %>% 
  gather(variable, obs, -car_names)
票数 0
EN

Stack Overflow用户

发布于 2018-03-19 09:33:15

您也可以使用interaction。使用@hpesoj626 626的示例数据:

代码语言:javascript
复制
college_grad <- c("Graduate", "Non-graduate")
sex <- c("Male", "Female")

df <- expand.grid(college_grad = college_grad, sex = sex)
df$sex_grad <- interaction(df$sex, df$college_grad, sep = ' & ')

结果:

代码语言:javascript
复制
> df
  college_grad    sex              sex_grad
1     Graduate   Male       Male & Graduate
2 Non-graduate   Male   Male & Non-graduate
3     Graduate Female     Female & Graduate
4 Non-graduate Female Female & Non-graduate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49357888

复制
相关文章

相似问题

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