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

如何在R语言中创建IF-THEN逻辑函数以生成新列?

基于条件逻辑生成新列的实现方案

Python(Pandas)实现

示例数据加载

先将示例数据转换为DataFrame:

import pandas as pd
import numpy as np

data = {
    'day1': [20, 25, 26, 27, 28, 60, 120],
    'weight1': [np.nan, 190, 167, 189, 200, 300, 127]
}
df = pd.DataFrame(data)

生成新列逻辑

两种简洁实现方式:

# 方法1:使用numpy.where直接映射条件
df['weightAdj'] = np.where((df['day1'] > 20) & (df['day1'] < 200), df['weight1'], np.nan)

# 方法2:布尔索引赋值
df['weightAdj'] = df['weight1']
df.loc[~((df['day1'] > 20) & (df['day1'] < 200)), 'weightAdj'] = np.nan

输出结果

执行后得到符合需求的数据集:

day1  weight1  weightAdj
0    20      NaN        NaN
1    25    190.0      190.0
2    26    167.0      167.0
3    27    189.0      189.0
4    28    200.0        NaN
5    60    300.0        NaN
6   120    127.0      127.0

R语言实现

示例数据加载

data <- data.frame(
    day1 = c(20, 25, 26, 27, 28, 60, 120),
    weight1 = c(NA, 190, 167, 189, 200, 300, 127)
)

生成新列逻辑

用ifelse函数直接实现条件判断:

data$weightAdj <- ifelse(data$day1 > 20 & data$day1 < 200, data$weight1, NA)

输出结果

处理后的数据框:

day1 weight1 weightAdj
1   20      NA        NA
2   25     190       190
3   26     167       167
4   27     189       189
5   28     200        NA
6   60     300        NA
7  120     127       127

内容的提问来源于stack exchange,提问作者BD'auria

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:00:02