如圖1所示為site(樣點(diǎn)),species(物種),abun(物種豐富)長(zhǎng)矩陣轉(zhuǎn)化寬矩陣唇敞,收集了三種方法。
#方法一:使用reshape2()包咒彤,melth()函數(shù)疆柔,dcast()函數(shù)
df <- read.csv(file.choose(),header = T,row.names = 1)
#數(shù)據(jù)提取
library(reshape2)
md1<-melt(df,id=c("species","site"))
newdata<-dcast(md1,species~site)
#dcast(#species表示新的矩陣的行名,site代表的是新的矩陣的列名)
write.csv(newdata,file = "D:/juzhen/juzhen.csv")
#D:代表D盤镶柱,juzhen代表文件旷档,juzhen.csv代表生成表名及格式。也可以write.table( newdata,file =?"D:/juzhen/juzhen.csv")
#第二種方法(使用tidyverse()包奸例,pivot_wider()函數(shù)
library(tidyverse)
#install.packages("rio")
library(rio)
df1<-df %>% pivot_wider(id_cols = species,names_from =site,values_from = abun )
#id_cols表示的是行名彬犯,names_from表示的是列名向楼,values_from代表值查吊。
export(df1,file="D:/juzhen/juzhen5.csv")
#export一種新的輸出方式,是rio()包中的湖蜕。
#第三種方法 tidyverse()包逻卖,中的tidyr::pivot_wider
library(tidyverse)
dff<-df%>%tidyr::pivot_wider(names_from = site,values_from = abun,values_fill = 0)%>% data.frame()
write.csv(dff,file = "D:/juzhen/juzhen4.csv")