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

R语言数据处理求助:如何移除特定重复值并保留对角线数据?

拆分指定字段到不同行的R语言解决方案

方法一:使用tidyr包的pivot_longer(推荐)

这是处理列转行需求的标准方法,无需手动复制行,代码简洁且易维护:

library(tidyr)

# 你的原始数据
mydata = data.frame(
  name = "Vince",
  date = "16/05/1977",
  money = 20,
  city = "NY",
  income = 100,
  country = "USA",
  car = "Porsche",
  loan = 250
)

# 将money/income/loan拆分为多行,保留其他字段不变
target_data = pivot_longer(
  data = mydata,
  cols = c(money, income, loan),  # 指定需要拆分的列
  names_to = "type",              # 存储原列名的新列
  values_to = "amount"            # 存储对应值的新列
)

print(target_data)

执行后会得到目标格式:

# A tibble: 3 × 7
  name  date       city  country car     type   amount
  <chr> <chr>      <chr> <chr>   <chr>   <chr>   <dbl>
1 Vince 16/05/1977 NY    USA     Porsche money      20
2 Vince 16/05/1977 NY    USA     Porsche income    100
3 Vince 16/05/1977 NY    USA     Porsche loan     250

方法二:基于你现有复制行的思路继续处理

如果你想沿用自己复制行的逻辑,只需给每行标记对应字段,然后将非目标字段设为NA:

# 你的原始复制行代码
mydata = data.frame(
  name = "Vince",
  date = "16/05/1977",
  money = 20,
  city = "NY",
  income = 100,
  country = "USA",
  car = "Porsche",
  loan = 250
)

duplicated_data = do.call("rbind", replicate(3, mydata, simplify = FALSE))

# 给每行标记对应的字段类型
duplicated_data$type = c("money", "income", "loan")

# 移除每行的多余值:仅保留对应type的字段值,其余设为NA
duplicated_data$money[duplicated_data$type != "money"] = NA
duplicated_data$income[duplicated_data$type != "income"] = NA
duplicated_data$loan[duplicated_data$type != "loan"] = NA

# 可选:合并为单一金额列(如果需要)
duplicated_data$amount = rowSums(duplicated_data[, c("money", "income", "loan")], na.rm = TRUE)
# 可选:删除原money/income/loan列
duplicated_data = duplicated_data[, !names(duplicated_data) %in% c("money", "income", "loan")]

print(duplicated_data)

执行后结果:

name       date city country     car   type amount
1  Vince 16/05/1977   NY     USA Porsche  money     20
2  Vince 16/05/1977   NY     USA Porsche income    100
3  Vince 16/05/1977   NY     USA Porsche   loan    250

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:30:51