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

如何使用R按规则处理Col1、Col2两列数据生成指定输出列

R实现数据按规则生成新列的方案

实现逻辑

逐行判断Col1的值:

  • Col1非NA时,在数值前拼接字符"1"后转换为数值类型(若Col1固定为两位数,也可直接用Col1 + 100的数值计算方式,效率更高)
  • Col1为NA时,直接取Col2的对应值填充

方法1:基础R实现

无需加载额外包,直接用内置函数处理:

# 示例数据
df<-read.table (text=" Col1 Col2
        65  NA
        NA  91
        56  NA
        71  71
        67  100
        NA  45
        44  NA
        NA  90
        NA  40
        84  71
        44  63
        NA  20
    ", header=TRUE)

# 生成新列Out
df$Out <- ifelse(is.na(df$Col1), df$Col2, as.numeric(paste0("1", df$Col1)))

# 可选数值计算写法(仅适用于Col1为两位数的场景)
# df$Out <- ifelse(is.na(df$Col1), df$Col2, 100 + df$Col1)

运行后查看df$Out即可得到对应结果。

方法2:dplyr(tidyverse生态)实现

适合已在使用tidyverse做数据处理的场景,语法更易读:

library(dplyr)
df <- df %>%
  mutate(Out = if_else(is.na(Col1), Col2, as.numeric(paste0("1", Col1))))

输出验证

最终得到的Out列和预期结果完全一致:

[1] 165  91 156 171 167  45 144  90  40 184 144  20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:57:03