R语言如何参照某列值批量修改另一列的对应单元格值
常用工具的实现方案
Python(Pandas)
假设你的数据集已加载为DataFrame对象df,两种常用写法均可实现:
# 写法1:loc定位赋值,逻辑更直观 df.loc[df['week'] == 52, 'month'] = 12 # 写法2:np.where条件替换 import numpy as np df['month'] = np.where(df['week'] == 52, 12, df['month'])
R语言
假设数据集名为df:
# 基础R语法 df$month[df$week == 52] <- 12 # dplyr语法 library(dplyr) df <- df %>% mutate(month = if_else(week == 52, 12, month))
SQL
如果数据存在数据库表date_info中:
- 需要修改原表数据:
UPDATE date_info SET month = 12 WHERE week = 52;
- 仅查询时临时输出,不修改原表:
SELECT year, CASE WHEN week = 52 THEN 12 ELSE month END AS month, week FROM date_info;
Excel
假设year/month/week分别在A、B、C列,第一行为表头:
- 空白列(如D列)第二行输入公式:
=IF(C2=52,12,B2) - 下拉公式填充所有数据行
- 复制D列所有计算结果,右键粘贴值到B列覆盖原有数据即可
所有方案对示例数据测试后均可输出你需要的预期结果。
内容的提问来源于stack exchange,提问作者abs
相关产品推荐
相关产品推荐

