r - How to calculate rowMeans for dataframe? -


i trying calculate rowmeans dataframe using these command

stamrow  <- data.frame(probeid=stam[,1], means=rowmeans(stam[,c(-1,-2,-3)])) stam$means  <- rowmeans(stam[,-(1:3)]) 

but getting error in both case

rowmeans(stam[, -(1:3)]) : 'x' must numeric 

my dataset this:

 stam =  probeid                     chr     position        sample1 sample2 sample3 sample4 sample5 chr10fs00300029     10     3000293             0.132    0.135   0.312   0.724   0.889    chr10fs003018825        10     3018825             0.524       0.446    0.203   -0.022  0.581    

thanking in advance

it works data posted. check str(stam) see if columns numeric.

data.frame(probeid=stam[,1], means=rowmeans(stam[,-c(1:3)]))  #         probeid  means  #1  chr10fs00300029 0.4384  #2 chr10fs003018825 0.3464 

update

if numeric columns start 4 15, can convert columns factor class numeric first

 stam[,4:15] <- lapply(stam[,4:15], function(x) as.numeric(as.character(x))) 

and apply rowmeans

or can specify numeric in colclasses argument in read.table

stam <- read.table('file.txt', header=true, sep='',        colclasses=c(rep('character',3), rep('numeric',12))) 

data

stam <- structure(list(robeid = c("chr10fs00300029", "chr10fs003018825" ), chr = c(10l, 10l), position = c(3000293l, 3018825l), sample1 = c(0.132,  0.524), sample2 = c(0.135, 0.446), sample3 = c(0.312, 0.203),  sample4 = c(0.724, -0.022), sample5 = c(0.889, 0.581)), .names = c("robeid",  "chr", "position", "sample1", "sample2", "sample3", "sample4",  "sample5"), class = "data.frame", row.names = c(na, -2l)) 

Comments

Popular posts from this blog

matlab - "Contour not rendered for non-finite ZData" -

delphi - Indy UDP Read Contents of Adata -

javascript - Any ideas when Firefox is likely to implement lengthAdjust and textLength? -