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

R语言依据多条件从其他列取值填充目标列KE的实现方法

R语言按条件匹配列值填充目标列实现方法

需求描述

  • 基础规则:根据Year列的取值,匹配对应年份的K开头列(K2007/K2008/K2009),将对应列的行值填充到KE列。例如当Year取值为2007时,KE对应行取K2007列的同位置值。
  • 初始示例数据:
Year <- c(2007,2008,2009)
K2007 <- c(1,2,3)
K2008 <- c(4,5,6)
K2009 <- c(7,8,9)
KE <- c(1,5,9)

2022/06/24 需求补充:赋值判定需要额外结合X、Y两列的取值,多条件同时满足时才取对应列值填充。例如当Year = 2007、X = 10、Y = 40三个条件同时成立时,KE对应行取值为1。
更新后示例数据:

Year <- c(2007,2008,2009)
X <- c(10, 20, 30)
Y <- c(40, 50, 60)
K2007 <- c(1,2,3)
K2008 <- c(4,5,6)
K2009 <- c(7,8,9)
KE <- c(1,5,9)

可行实现代码

通过dplyr包的条件判断函数即可实现,支持灵活叠加多条件规则,经实测可用的参考代码如下:

library(dplyr)
test <- ddd %>%
  mutate(KE = case_when(
       Year == 2007 ~ ke_2007,
       Year == 2008 ~ ke_2008,
       Year == 2009 ~ ke_2009,
       TRUE ~ NA_real_)) 

提示:如果需要加入X、Y列的判定逻辑,直接在判断条件中用&拼接即可,例如将Year == 2007修改为Year == 2007 & X == 10 & Y == 40,同时将右侧赋值的列名替换为自身数据实际的列名即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:27:31