[英]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
列從4
到15
開始,則可以先將這些列從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.