r - 当变量不是数字时,如何组合 R 中的两列?
问题描述
我的数据表中有两列R
。一个是种族,另一个是种族。我想将这两列合并成一个新列,标记为 R/E。但是,我在组合变量时遇到了困难,因为我想在某些情况下从另一列替换一列的变量而不替换整个列的变量。
假设我有这两列。
Ethnicity <- c("Hispanic or Latino", "Not Hispanic or Latino", "Not Hispanic or Latino", "Neither", "Neither")
Race <- c("Neither", "Asian", "Neither", "Asian", "Neither")
所需列 (R/E):c("Hispanic or Latino", "Asian", "Not Hispanic or Latino", "Asian", "Neither")
我想创建一列,我可以在其中相应地组合这些变量。我曾尝试使用 ifelse,但我不确定语法是否正确。
我基本上想说:如果种族=“西班牙裔或拉丁裔”-> R/E =“西班牙裔或拉丁裔”,如果种族=“未知”或种族=“非西班牙裔或拉丁裔”,则检查“种族”
我可以ifelse
用来做这个吗?还是我可以使用其他功能来实现这一点?
我不知道从哪里开始
NewData$R/E <-ifelse(NewData$Etn<= Hispanic or Latino, "Hispanic or Latino", ifelse(NewData$Etn<= Neither,
解决方案
如果 2 个向量的长度相同(例如,如果它们是 data.frame 中的 2 列),则可以使用格式正确的ifelse
语句:
ifelse(Race == 'Neither', Ethnicity, Race)
[1] "Hispanic or Latino" "Asian"
[3] "Not Hispanic or Latino" "Asian"
[5] "Neither"
不过,请注意:如果向量的长度不同,则会重复较短的向量以使其长度相同,从而导致如下奇怪的结果:
ifelse(Race == 'Neither', c("A","B","C"), Race)
[1] "A" "Asian" "C" "Asian" "B"
推荐阅读
- vue.js - 如何通过单击按钮触发 fromEvent() rxjs?
- php - PHP Curl 什么都不返回,没有错误,也没有数据
- flutter - 如何避免着陆页在颤动中返回
- php - 显示表单结果与表单相同的页面
- android - 如何将我的本机服务添加到 Android 中的现有组
- java - 如何使用 categoryid 打开活动
- c++ - 优先队列声明 C++
- php - 即使用户拥有所有特权,mysql 也会显示访问被拒绝 1045
- asp.net - Bootstrap asp.net 使用 Multiview 显示移动视图
- android - 用于图像过滤器的 Opencv vs Opengl