R语言提取子数据报错?
今天用R语言提取数据时遇到个小问题,
i<- 2, data.frame[,c(i,i+1,i+2)]
无法提出数据的子集。
具体如下:
对于数据
要计算三次重复的平均数。
写了脚本:
exp<- data.table::fread('FPKM.xls')
data<- dplyr::select(exp,1)
for (i in seq(2,length(exp),3)){
name<- unlist(strsplit(names(exp)[i],"_"))[1]
test<- apply(exp[,i:i+2],1,mean)
data[[name]]<- test
}
结果报错无法运行,问题出在:
test<- apply(exp[,i:i+2],1,mean)
而改成:
exp<- data.table::fread('FPKM.xls')
data<- dplyr::select(exp,1)
for (i in seq(2,length(exp),3)){
name<- unlist(strsplit(names(exp)[i],"_"))[1]
num1=i
num2=i+2
test<- apply(exp[,num1:num2],1,mean)
data[[name]]<- test
}
或者:
exp<- data.table::fread('FPKM.xls')
data<- dplyr::select(exp,1)
for (i in seq(2,length(exp),3)){
name<- unlist(strsplit(names(exp)[i],"_"))[1]
test<- apply(dplyr::select(exp,i,i+1,i+2),1,mean)
data[[name]]<- test
}
则能很好的运行。