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

如何在R中基于其他列的条件创建新列'type'?

基于多条件创建新列'type'的实现方案

下面分两种常用数据处理工具给出实现代码,严格遵循你指定的条件优先级:

R语言(dplyr)实现

使用dplyr包的case_when()函数按顺序匹配条件,确保优先级正确:

library(dplyr)

df <- df %>%
  mutate(type = case_when(
    !is.na(received) ~ "group_1",          # 优先判断received非空
    is.na(received) & closed == "yes" ~ "group_2",  # 其次是received空且closed=yes
    opened == "AC" ~ "group_3",            # 最后判断opened=AC
    TRUE ~ NA_character_                   # 不满足以上条件时返回NA,可按需修改
  ))

Python(Pandas)实现

用numpy.select()高效处理多条件赋值,适配中等规模数据集:

import pandas as pd
import numpy as np

# 定义条件列表和对应结果值
conditions = [
    df['received'].notna(),
    df['received'].isna() & (df['closed'] == 'yes'),
    df['opened'] == 'AC'
]
values = ['group_1', 'group_2', 'group_3']

# 生成新列
df['type'] = np.select(conditions, values, default=np.nan)

注意事项

  • 条件顺序必须严格遵循你给出的优先级,工具会按顺序匹配第一个满足的条件
  • 若存在不满足任何条件的行,上述代码会返回NA(R)或NaN(Python),可根据需求修改默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 08:04:56