vlambda博客
学习文章列表

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}

则能很好的运行。