R语言如何实现A列满足条件时C列返回B列对应值(mtcars示例)
R语言实现mtcars数据集的条件列赋值
直接用R基础语法就能完成,不需要依赖第三方包,操作步骤如下:
- 首先执行要求的初始化操作,加载内置数据集并创建初始值为NA的
want列:
data(mtcars) mtcars$want <- NA
- 核心赋值逻辑通过行索引实现:筛选
carb列值等于1的行,将对应行的qsec值赋值给同位置的want列,不满足条件的行会保留初始NA值,不会被修改:
mtcars$want[mtcars$carb == 1] <- mtcars$qsec[mtcars$carb == 1]
结果校验
执行完上述代码后,查看数据集前5行,输出和预期示例完全匹配:
mpg cyl disp hp drat wt qsec vs am gear carb want Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 NA Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 NA Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 18.61 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 19.44 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 NA
如果习惯用tidyverse生态的写法,也可以用dplyr::mutate配合ifelse实现,但基础R写法无额外依赖,适配所有R环境。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

