R中文件合并怎么做?
2022-03-11 本文已影响0人
笺牒九州的怪咖
merge
通过一个或者多个变量进行连接
> Sa <- read.table("a.txt",header=TRUE,row.name="No",sep="\t") #读取文件a
> Sa
name age score
1 ZZZ 17 2189
2 HJK 18 3109
3 YUI 24 5189
4 AAA 56 145
5 SUN 34 1267
> Sb <- read.table("b.txt",header=TRUE,sep="\t") #读取文件b
> Sb
name age regian opp
1 BHA 18 JL 2
2 HJK 18 SY 3
3 AAA 56 XA 5
4 SUN 34 HD 4
> merge_by_name <- merge(Sa, Sb, by="name") #文件ab以name列合并
> merge_by_name
name age.x score age.y regian opp
1 AAA 56 145 56 XA 5
2 HJK 18 3109 18 SY 3
3 SUN 34 1267 34 HD 4
> merge_by_age <- merge(Sa, Sb, by="age") #文件ab以age列合并
> merge_by_age
age name.x score name.y regian opp
1 18 HJK 3109 BHA JL 2
2 18 HJK 3109 HJK SY 3
3 34 SUN 1267 SUN HD 4
4 56 AAA 145 AAA XA 5
> merge_by_name_age <- merge(Sa, Sb, by=c("name","age")) #文件ab以name和age列合并
> merge_by_name_age
name age score regian opp
1 AAA 56 145 XA 5
2 HJK 18 3109 SY 3
3 SUN 34 1267 HD 4
cbind
横向合并,不需要指定索引,必须拥有相同的行数
> Sa <- read.table("a.txt",header=TRUE,row.name="No",sep="\t") #读取文件a
> Sa
name age score
1 ZZZ 17 2189
2 HJK 18 3109
3 YUI 24 5189
4 AAA 56 145
5 SUN 34 1267
> Sb <- read.table("b.txt",header=TRUE,sep="\t") #读取文件b
> Sb
name age regian opp
1 BHA 18 JL 2
2 HJK 18 SY 3
3 AAA 56 XA 5
4 SUN 34 HD 4
>cbind1 <- cbind(Sa, Sb)
Error in data.frame(..., check.names = FALSE) :
参数值意味着不同的行数: 5, 4
> Sb2 <- read.table("b2.txt",header=TRUE,sep="\t") #读取文件b2
> Sb2
name age regian opp
1 BHA 18 JL 2
2 HJK 18 SY 3
3 AAA 56 XA 5
4 SUN 34 HD 4
5 YUN 25 XM 1
>cbind2 <- cbind(Sa, Sb2)
> cbind2
name age score name age regian opp
1 ZZZ 17 2189 BHA 18 JL 2
2 HJK 18 3109 HJK 18 SY 3
3 YUI 24 5189 AAA 56 XA 5
4 AAA 56 145 SUN 34 HD 4
5 SUN 34 1267 YUN 25 XM 1
用R做文件合并,你fei了吗?
-----------------------------------------------------------------------------------------------------------------------------------------------I`m a line ! Thanks !-------------------------------------------------------------------------------------------------------------------------------