You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何按条件引用另一变量取值创建新变量basic_adj

原有代码问题说明

  • ifelse的满足条件分支你设置的是固定字符串"1",而非需求要求的employment_adj列对应取值
  • 额外调用的factor()会将结果转为因子类型,不符合存储数值的需求

基础R实现

indcode <- c(2401, 3090, 5200)
employment_adj <- c(29.2,31.2,12.4)   
df <- data.frame(indcode, employment_adj)
# 生成新变量basic_adj
df$basic_adj <- ifelse(
  test = df$indcode >= 2400 & df$indcode < 3100,
  yes = df$employment_adj,
  no = NA
)

运行后得到的结果和你给出的示例完全匹配:

indcodeemployment_adjbasic_adj
240129.229.2
309031.231.2
520012.4NA

NA在导出为CSV、Excel等格式时会自动显示为空单元格,符合你要的留空要求。


dplyr实现(tidyverse生态常用写法)

如果你习惯用dplyr处理数据,可以用mutate+if_else的写法:

library(dplyr)
df <- df %>%
  mutate(
    basic_adj = if_else(
      condition = indcode >= 2400 & indcode < 3100,
      true = employment_adj,
      false = NA_real_
    )
  )

这里用NA_real_是为了和employment_adj的数值类型匹配,避免if_else的类型校验报错。


内容的提问来源于stack exchange,提问作者rfl026

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:18:01