簡體   English   中英

如何計算數據框的rowMeans?

[英]How to calculate rowMeans for dataframe?

我正在嘗試使用這些命令為數據幀計算rowMeans

stamRow  <- data.frame(ProbeID=stam[,1], Means=rowMeans(stam[,c(-1,-2,-3)]))
stam$Means  <- rowMeans(stam[,-(1:3)])

但是我都遇到錯誤

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

我的數據集如下所示:

 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   

預先謝謝你

它可以處理您發布的數據。 我將檢查str(stam)以查看列是否為numeric

data.frame(ProbeID=stam[,1], Means=rowMeans(stam[,-c(1:3)]))
 #         ProbeID  Means
 #1  CHR10FS00300029 0.4384
 #2 CHR10FS003018825 0.3464

更新資料

如果numeric列從415開始,則可以先將這些列從factor類轉換為numeric

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

然后應用rowMeans

或者,您可以在read.table colClasses參數中指定numeric

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

數據

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM