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

如何根据列名及关联表替换布尔TRUE值并生成行状态标识

解法说明

以下是基于R语言tidyverse套件的实现方案,逻辑清晰易读:

1. 构造测试数据

如果已经有实际数据可以跳过这一步:

library(tidyverse)

# 原始数据表df1
df1 <- data.frame(
  id = 1:4,
  v1 = c(TRUE, FALSE, TRUE, FALSE),
  v2 = c(TRUE, FALSE, FALSE, TRUE),
  v3 = c(FALSE, TRUE, FALSE, TRUE),
  v4 = c(FALSE, FALSE, FALSE, TRUE)
)

# 权重映射表df2
df2 <- data.frame(
  var = c("v1", "v2", "v3", "v4"),
  weight = c(1, 4, 2, 5)
)

2. 数据处理代码

df.out <- df1 %>%
  # 遍历v1到v4列,TRUE替换为对应权重,FALSE替换为0
  mutate(across(v1:v4, ~ ifelse(.x, df2$weight[df2$var == cur_column()], 0))) %>%
  # 按行统计非零值数量,生成Status标识
  rowwise() %>%
  mutate(
    Status = case_when(
      sum(c_across(v1:v4) != 0) == 1 ~ "Single",
      TRUE ~ "Multiple"
    )
  ) %>%
  ungroup()

运行上述代码后输出的df.out和你给出的期望结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:57:00