我再次问一个与R/dataframe相关的问题。最近,我已经开始实现merge()函数,但是我需要帮助在将不同的相似 Dataframe 合并在一起之后合并一些相同的列。
library(dplyr)
library(tidyr)
library(stringr)
DF1 = data.frame(ID=c("A","B","C"), TagNo=c(10,20,20),Info=c("Metal","Plastic","Wood"))
DF2 = data.frame(ID=c("A","D","E"), TagNo=c(10,30,100),Info=c("Wood","Metal","Wood"))
DF3 = data.frame(ID=c("B","C","F"), TagNo=c(20,20,40),Info=c("Glass","Metal","Wood"))
dfmerge <- merge(DF1,DF2,by="ID",all.x=TRUE, all.y=TRUE)
dfmerge <- merge(dfmerge,DF3,by="ID",all.x=TRUE, all.y=TRUE)
合并后的dataframe看起来像这样:
| ID|标记号|Info.x|标签编号|Info.y|标记号|新闻资讯|
| --------------|--------------|--------------|--------------|--------------|--------------|--------------|
| 一个|10个|金属|10个|木材|不适用|不适用|
| B|二十|塑料|不适用|不适用|五十|玻璃|
| C|二十|木材|不适用|不适用|二十|金属|
| D|不适用|不适用|三十|金属|不适用|不适用|
| E级|不适用|不适用|一百|木材|不适用|不适用|
| F|不适用|不适用|不适用|不适用|四十|木材|
我基本上想把TagNo列压缩成一个Tag列。为了突出一些重要的东西。每个样本至少有1个TagNo,如果它有超过1个,它将总是相同的。我不必担心它们是不同的。
这是我需要的结果:
| ID|标签编号x|Info.x|Info.y|新闻资讯|
| --------------|--------------|--------------|--------------|--------------|
| 一个|10个|金属|木材|不适用|
| B|二十|塑料|不适用|玻璃|
| C|二十|木材|不适用|金属|
| D|三十|不适用|金属|不适用|
| E级|一百|不适用|木材|不适用|
| F|四十|不适用|不适用|木材|
有人知道如何解决这个问题吗?我感谢任何帮助。[列标题不是一个大问题,因为我可以简单地解决这个问题后,与colnames(dfmerge)〈-...
2条答案
按热度按时间dphi5xsq1#
您是否正在寻找
dplyr
连接功能?创建于2023-04-26带有reprex v2.0.2
ttcibm8c2#
试试这个: