如何在R中匹配df1值与df2列名实现两个数据框合并
R语言实现两个数据框匹配合并的方法
base R 实现(无需额外安装包)
# 处理df1:转置为属性为行、x序列为列的结构 df1_processed <- as.data.frame(t(df1[, -1])) colnames(df1_processed) <- df1$object # 处理df2:筛选匹配列,设置参数名为行名 df2_processed <- df2[, c("param", df1$object)] rownames(df2_processed) <- df2_processed$param df2_processed <- df2_processed[, -1] # 按行合并得到最终结果 final_res <- rbind(df2_processed, df1_processed) print(final_res)
tidyverse 实现(适合习惯管道操作的场景)
library(tidyverse) df1_processed <- df1 %>% pivot_longer(-object, names_to = "row_name", values_to = "val") %>% pivot_wider(names_from = object, values_from = val) %>% column_to_rownames("row_name") df2_processed <- df2 %>% column_to_rownames("param") %>% select(all_of(df1$object)) final_res <- bind_rows(df2_processed, df1_processed)
运行上述任意一种代码,输出的final_res就是你要求的格式:
x1 x2 x3 weight value value value len value value value volume value value value color red green blue shape square circle square
内容的提问来源于stack exchange,提问作者Yulia Kentieva
相关产品推荐
相关产品推荐

