数据预处理(第一天)

来源:互联网 发布:python计算两点距离 编辑:程序博客网 时间:2024/06/05 18:29

将excel文件另存为csv格式(不支持多个sheet,每个sheet保存为独立的csv文件)

4个csv文件:

1.基因型:genotype.csv,375行105列,每行为一个line(第一列为line编号)。编码方式:纯合体用1位数1~n(n种不同等位基因型,n最大为7)表示,杂合体用2位数xy(x,y:1~n)表示,未测定的用-9表示(原文件中line 332, RM10376,闪闪标为13?,改为-9)。

2.表型:为产量形状。

2.1:phenotype_IRRI.csv,392行7列,有缺失值(闪闪原文件中用点“.”表示,需要处理),第1列为line编号,第2、3、4列为旱季不同氮水平的3个实验,第5、6、7列为雨季不同氮水平的3个试验。

2.2:phenotype_JX.csv,351行2列,无缺失值,第1列为line编号,第2列为国内JX省实验。

2.3:phenotype_SC.csv,376行2列,无缺失值,第1列为line编号,第2列为国内SC省实验。


对IRRI表型缺失的两种处理方法:

方法一:在excel文件中,手动将点"."全改为0(共有51处,不能用“查找/替换",因为其它数据含有小数点),然后用R处理

phenotype_IRRI<-read.csv("phenotype_IRRI.csv",sep=',') 
  #读入excel文件

phenotype_IRRI[phenotype_IRRI==0]<-NA
  #将0修改为NA,不能在excel中直接改为NA,否则读入R后会自动将含有字符串的列识别为factor类别。

save(phenotype_IRRI,file="phenotype_IRRI_backup.RData",ASCII=T)
  #将工作区数据保存为R数据文件

load("phenotype_IRRI_backup.RData")

  #需要使用时再读入R数据文件



方法二:整个过程全部用R处理


irri<-read.csv("irri.csv",sep=',')

#irri.csv为含有点"."表示缺失数据的原始文件,含有点“.”的列全被识别为factor。


n<-dim(irri)[1]

p<-dim(irri)[2]

colname<-colnames(irri)


irri[irri=='.']<-NA


irri<-as.matrix(irri)

  #将data frame转换为matrix,否则as.numeric不起作用


irri<-as.numeric(irri)
  #将factor转换为numeric,结果为一个vector

irri<-matrix(irri,n,p)
  #先转换为matrix

irri<-as.data.frame(irri)
  #转换为data frame

colnames(irri)<-colname

  #恢复列的名称

irri[,1]<-as.integer(irri[,1])

  #将第1列line编号转换为int


save(irri,file="irri.RData",ASCII=T)

#将工作区数据保存为R数据文件

原创粉丝点击