当前位置:网站首页>【R语言】两个/N个数据合并merge函数
【R语言】两个/N个数据合并merge函数
2022-07-01 07:18:00 【违规账号247188】
两个数据框合并
data1=data.frame(
names = c('AAA', 'CCC', 'DDD', 'EEE', 'FFF' ),
logFC = c(3, -0.4, 5, 0.4, -3 ),
bmi = c('正常', '正常','超重','肥胖','正常')
)
data2=data.frame(
names = c('AAA','BBB', 'CCC', 'DDD', 'EEE' ),
gender = c(1, 2, 1, 2, 1), #1=男 2=女
bmi = c('正常','低体重','正常','超重','肥胖' )
)
merge(data1,data2,all=TRUE)
# 同样结果,可以不用加by
merge(data1,data2,all=TRUE,by = intersect(names(data1), names(data2)))
| names | bmi | logFC | gender |
|---|---|---|---|
| AAA | 正常 | 3 | 1 |
| BBB | 低体重 | NA | 2 |
| CCC | 正常 | -0.4 | 1 |
| DDD | 超重 | 5 | 2 |
| EEE | 肥胖 | 0.4 | 1 |
| FFF | 正常 | -3 | NA |
dplyr::full_join函数情况
dplyr::full_join(data1,data2)
dplyr::full_join函数情况,如果加by,会出现重复的变量名为 .x .y
dplyr::full_join(data1,data2,by=c("names"))
> dplyr::full_join(data1,data2)
Joining, by = c("names", "bmi")
names logFC bmi gender
1 AAA 3.0 正常 1
2 CCC -0.4 正常 1
3 DDD 5.0 超重 2
4 EEE 0.4 肥胖 1
5 FFF -3.0 正常 NA
6 BBB NA 低体重 2
| names | logFC | bmi.x | gender | bmi.y |
|---|---|---|---|---|
| AAA | 3 | 正常 | 1 | 正常 |
| CCC | -0.4 | 正常 | 1 | 正常 |
| DDD | 5 | 超重 | 2 | 超重 |
| EEE | 0.4 | 肥胖 | 1 | 肥胖 |
| FFF | -3 | 正常 | NA | NA |
| BBB | NA | NA | 2 | 低体重 |
R merge() 与dplyr join()
| dplyr | base |
|---|---|
| inner_join(df1, df2) | merge(df1, df2) |
| left_join(df1, df2) | merge(df1, df2, all.x = TRUE) |
| right_join(df1, df2) | merge(df1, df2, all.y = TRUE) |
| full_join(df1, df2) | merge(df1, df2, all = TRUE) |
| semi_join(df1, df2) | df1[df1 x x %in% df2 xx, , drop = FALSE] |
| anti_join(df1, df2) | df1[!df1 x x %in% df2 xx, , drop = FALSE] |
# 假设相同变量,里面得内容不一样,如AAA-BMI-常1
data2=data.frame(
names = c('AAA','BBB', 'CCC', 'DDD', 'EEE' ),
gender = c(1, 2, 1, 2, 1), #1=男 2=女
bmi = c('正常1','低体重','正常','超重','肥胖' )
)
merge(data1,data2,all=TRUE,by = intersect(names(data1), names(data2)))
# 结果会另起一行
| names | bmi | logFC | gender |
|---|---|---|---|
| AAA | 正常 | 3 | NA |
| AAA | 正常1 | NA | 1 |
| BBB | 低体重 | NA | 2 |
| CCC | 正常 | -0.4 | 1 |
| DDD | 超重 | 5 | 2 |
| EEE | 肥胖 | 0.4 | 1 |
| FFF | 正常 | -3 | NA |
多个数据框合并
data1=data.frame(
names = c('AAA', 'CCC', 'DDD', 'EEE', 'FFF' ),
logFC = c(3, -0.4, 5, 0.4, -3 ),
bmi = c('正常', '正常','超重','肥胖','正常')
)
data2=data.frame(
names = c('AAA','BBB', 'CCC', 'DDD', 'EEE' ),
gender = c(1, 2, 1, 2, 1), #1=男 2=女
bmi = c('正常','低体重','正常','超重','肥胖' )
)
data3=data.frame(
names = c('GGG' ),
gender = c("男"), #1=男 2=女
bmi = c('正常' )
)
file=ls(pattern = "data")
ALL1=list(data1,data2,data3)
multimerge<-function(dat=list(),...){
if(length(dat)<2)return(as.data.frame(dat))
mergedat<-dat[[1]]
dat[[1]]<-NULL
for(i in dat){
mergedat<-merge(all=TRUE,mergedat,i,...)
}
return(mergedat)
}
multimerge(ALL1)
边栏推荐
- Challenges faced by operation and maintenance? Intelligent operation and maintenance management system to help you
- 【LINGO】求解二次规划
- Are there any practical skills for operation and maintenance management
- AI视频智能平台EasyCVR设备录像出现无法播放现象的问题修复
- 【LINGO】求七个城市最小连线图,使天然气管道价格最低
- ctfshow-web351(SSRF)
- Is it safe to do fund fixed investment on Great Wall Securities?
- 赌上了绩效,赢了公司CTO,我要搭DevOps平台!
- iNFTnews | 从《雪崩》到百度“希壤”,元宇宙30年的16件大事
- Ctfhub port scan (SSRF)
猜你喜欢

浏览器本地存储

LeetCode+ 71 - 75

Huawei modelarts training alexnet model

Open source! Wenxin large model Ernie tiny lightweight technology, accurate and fast, full effect

ctfshow-web351(SSRF)

Warm congratulations on the successful listing of five elements hehe liquor

【推荐技术】基于协同过滤的网络信息推荐技术matlab仿真

ctfshow-web354(SSRF)

Félicitations pour l'inscription réussie de wuxinghe

We found a huge hole in MySQL: do not judge the number of rows affected by update!!!
随机推荐
浏览器本地存储
LeetCode+ 71 - 75
【分类模型】Q 型聚类分析
电脑有网络,但所有浏览器网页都打不开,是怎么回事?
[matlab] solve nonlinear programming
Open source! Wenxin large model Ernie tiny lightweight technology, accurate and fast, full effect
LeetCode+ 71 - 75
[Electrical dielectric number] electrical dielectric number and calculation considering HVDC and facts components
[Shenzhen IO] precise Food Scale (some understanding of assembly language)
[chapter 72 of the flutter problem series] a solution to the problem that pictures taken in the flutter using the camera plug-in are stretched
关于“2022年度网络安全教育线上培训”相关问题的复盘和说明
為什麼這麼多人轉行產品經理?產品經理發展前景如何?
【FPGA帧差】基于VmodCAM摄像头的帧差法目标跟踪FPGA实现
Pourquoi tant de gens sont - ils devenus des gestionnaires de produits? Quelles sont les perspectives de développement des gestionnaires de produits?
C language implementation [Sanzi chess game] (step analysis and implementation source code)
Redisson utilise la solution complète - redisson Documents officiels + commentaires (Partie 1)
atguigu----脚手架--02-使用脚手架(2)
2022制冷与空调设备运行操作国家题库模拟考试平台操作
Jax's deep learning and scientific computing
运维管理系统,人性化操作体验