如何从R中2个不同的csv文件中合并数据?

问题描述 投票:2回答:2

我有以下问题:在csv文件中,我有一列用于物种,一列用于横断面,一列用于年份,一列用于AUC。在另一个csv文件中,我有一列用于横断面,一列用于年份,一列用于降水,一列用于温度。现在,我想以某种方式加入R中的文件,这样我就可以从第二个csv获得种类和AUC的列,而从第一个csv获得其余的列。最后,我想获得一个包含transect_id,年,日,月,种类,regional_gam(= AUC),降水和LST(=温度)的文件。因此,基本上,必须将2008年每天从TR001开始的降水/ LST值分配给每个具有2008和TR001 AUC值的物种。谢谢!

r csv merge
2个回答
2
投票

使用read.csv,然后使用merge

将两个csv文件加载到R中。(不要忘了确保它们的公用变量共享相同的名称!)。

df1<-read.csv(dat1,head=T)
df2<-read.csv(dat2,head=T)

通过共享变量将数据框合并在一起,并添加参数all.x = T(默认值),以确保所有行都保留在包含物种的数据库中。

merge(df1,df2,by=c('transect_id','year'),all.x=T)

要使用测试数据查看实际效果:

test<-data.frame(sp=c(rep(letters[1:10],2)),t=c(rep(1:3,2,20)),y=c(rep(2000:2008,len=20)),AUC=1:20)
test2<-data.frame(t=c(rep(1:3,2,9)),y=c(rep(2000:2008,len=9)),ppt=c(1:9),temp=c(11:19))

merge(test,test2,by=c('t','y'),all.x=T)

0
投票

请使用

library(dplyr)

df1<- read.csv("F:\\Test_Anything\\Merge\\1.csv" , head(T))
df2<-read.csv("F:\\Test_Anything\\Merge\\2.csv" , head(T))
r <- merge(df1,df2,by=c('NAME','NAME'),all.x=T)
write.csv(r,"F:\\Test_Anything\\Merge\\DF.csv" , all(T) )
© www.soinside.com 2019 - 2024. All rights reserved.