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

如何在R中根据Name和Current_Version动态获取对应版本列的值

动态获取指定版本列的值(base R & dplyr实现)

Base R 实现

通过动态匹配行索引和列名的方式,无需硬编码版本列名,适配列的动态变化:

get_version_value <- function(df, target_name) {
  target_row <- df[df$Name == target_name, ]
  version_col <- as.character(target_row$Current_Version)
  target_row[[version_col]]
}

# 测试:获取Name为"B"对应的值
get_version_value(df, "B")
# 输出:30

这个函数会自动根据目标Name对应的Current_Version值,匹配对应的版本列,不管后续版本列新增或删除,只要Current_Version的数值和列名(字符串格式)一致,就能正常工作。

dplyr 实现

用管道和动态列选择实现需求,提供两种简洁写法:

写法1:rowwise + pick

library(dplyr)

df %>%
  filter(Name == "B") %>%
  rowwise() %>%
  mutate(target_value = pick(as.character(Current_Version))) %>%
  pull(target_value)

写法2:管道内自引用

library(dplyr)

df %>%
  filter(Name == "B") %>%
  { .[[as.character(.$Current_Version)]] }

两种写法都不需要固定版本列名,完全依赖Current_Version和列名的对应关系,适配动态变化的版本列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:43:17