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

基于Region列修改DataFrame:为!UK行添加House内容新行

解决方案

可以借助tidyverse工具集实现需求,核心思路是识别符合条件的行并生成复制记录,再合并到原数据集中:

完整实现代码

library(tidyverse)

# 原始数据
df <-  tibble(Region = c("AU","USA","CA","USA","!UK","AU","USA","CA","!UK"),
              lock = c(1,1,NA,1,NA,1,NA,1,NA),
              type= c("sale",NA,NA,"target","target",NA,"sale",NA,"target"),
              House =c("Tagore house","Gandhi house",NA,"Flexible;Tagore house;Gandhi house","Tagore house",NA,"Flexible;Gandhi house","Gandhi house","Gandhi house"))

# 处理逻辑:筛选符合条件的行并复制,再与原数据合并
df_processed <- df %>%
  # 筛选出需要新增行的记录并复制
  bind_rows(
    df %>% filter(Region == "!UK" & !is.na(House))
  ) %>%
  # 可选:按原始顺序重新排序(如需保留原行在前、新增行在后的顺序)
  arrange(match(row_number(), c(1:nrow(df), which(df$Region == "!UK" & !is.na(df$House)))))

# 查看处理后的结果
print(df_processed)

代码说明

  1. 筛选并复制目标行:用filter()找出Region为!UK且House非空的记录,通过bind_rows()将这些复制记录追加到原数据后
  2. 可选排序:如果需要保持原行在前、对应新增行紧跟其后的顺序,用arrange()结合match()还原排序逻辑

运行后,原数据中第5、9两行(符合Region="!UK"且House非空的条件)会各新增一条完全相同的记录,其余行保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:02:10