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

R语言如何基于两列条件为dataframe创建新列

R实现方法

首先先对数据做预处理,将列v1_2中的.转为数值型缺失值,再通过条件判断生成新列即可,提供两种常用实现方式:


步骤1:构造示例数据(你可以跳过这步直接用你自己的数据集)

df <- data.frame(
  id = 1:5,
  v1 = c(4,5,9,9,2),
  v1_2 = c(".", ".", "7", "6", ".")
)
# 预处理:把v1_2的点转换为数值类型,非数字的点会自动识别为缺失值NA
df$v1_2 <- as.numeric(df$v1_2)

方法1:Base R原生实现

用基础函数ifelse做向量化条件判断,一行代码完成:

df$final <- ifelse(df$v1 != 9, df$v1, df$v1_2)

方法2:tidyverse/dplyr风格实现

适合习惯用管道函数的场景:

library(dplyr)
df <- df %>%
  mutate(final = if_else(v1 != 9, v1, v1_2))

运行后得到的结果和你预期完全一致:

> df
  id v1 v1_2 final
1  1  4   NA     4
2  2  5   NA     5
3  3  9    7     7
4  4  9    6     6
5  5  2   NA     2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:06:03