R-Column输出列指定函数中的每一行

时间:2016-08-25 16:57:17

标签: r

我有一个相当基本的问题,但希望在这里找到一些帮助。我使用数据框“norm_regions”中的坐标从数据框“maindata”中提取数据,然后我想从中计算“norm_regions”中每一行的中值:

normalize_data <- function(maindata, norm_regions){
  norm_regions[,1]<-factor(norm_regions[,1], levels=levels(straindata[,3]))
  norm_regions$median<-call_region_median(straindata, chrom=norm_regions$chrom, start=norm_regions$start, end=norm_regions$end)
  return(norm_regions)
}

call_region_median <- function(maindata, chrom, start, end) {
  region<-subset(straindata, V3==chrom & V4>=start & V4<=end)
  region_median<-median(region$V5, na.rm=TRUE)
  return(region_median)
}

奇怪的是,我为所有坐标获得相同的输出,而当我逐个为每个坐标执行时,情况并非如此:

chrom  start    end    median
1  chrXII 373029 373529  144.7
2  chrVII 888228 888728  144.7
3    chrV  93848  94348  144.7
4    chrX 683618 684118  144.7
5   chrVI 199188 199688  144.7
6   chrIX 411686 412186  144.7
7  chrIII  74318  74818  144.7
8  chrXIV 561002 561502  144.7
9   chrXV 277405 277905  144.7
10   chrI 176029 176529  144.7 

这是什么问题?

编辑: 这是norm_regions的一个例子:

chrom   start   end
chrXII  373029  373529
chrVII  888228  888728
chrV    93848   94348
chrX    683618  684118
chrVI   199188  199688

和maindata:

V1    V2    V3    V4    V5
WT  brdu    chrI    1   33.44
WT  brdu    chrI    2   34.91
WT  brdu    chrI    3   35.51
WT  brdu    chrI    4   39.78

0 个答案:

没有答案