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

使用cbind函数合并列计算时如何保留原有行名

R语言合并计算列时保留行名的解决方案

你使用cbind后丢失行名,一般是因为输入的两个向量未预先设置names属性,或是合并时仅提取了数值列、丢弃了原有行名信息,可根据数据存储形式选择以下方案:

方案1:两个向量本身带有行名属性

如果你的两个原始向量已经设置了星期作为names属性,直接相加后构造结果即可自动保留行名:

# 构造示例数据(对应你已有的两个向量)
vec1 <- c(1,1,1,1,1)
names(vec1) <- c("Monday","Tuesday","Wednesday","Thursday","Friday")
vec2 <- c(2,2,2,2,2)
names(vec2) <- c("Monday","Tuesday","Wednesday","Thursday","Friday")

# 直接计算并生成保留行名的结果
result <- data.frame(
  value = vec1 + vec2
)

也可以结合cbind计算行和,行名会自动保留:

combined <- cbind(vec1, vec2)
result <- data.frame(
  value = rowSums(combined)
)

方案2:行名存储为数据框的单独列

如果你原本的星期信息是存成数据框的普通列,先按星期列合并两个数据框再计算即可:

# 示例原始数据框
df1 <- data.frame(
  weekday = c("Monday","Tuesday","Wednesday","Thursday","Friday"),
  val = c(1,1,1,1,1)
)
df2 <- data.frame(
  weekday = c("Monday","Tuesday","Wednesday","Thursday","Friday"),
  val = c(2,2,2,2,2)
)

# 合并计算
library(dplyr)
result <- inner_join(df1, df2, by = "weekday") %>%
  mutate(total = val.x + val.y) %>%
  select(weekday, total)

# 如果需要把星期设为行名,额外执行以下两行
rownames(result) <- result$weekday
result$weekday <- NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 08:54:08