我不知道為什么我會收到錯誤“較長的物體長度不是較短物體長度的倍數”?我用不同的資料幀運行了一個類似的代碼,它似乎有效。
Data:
feature mean sample1 sample2 sample3
a 3 4 8 7
b 4 3.4 3 6
c 5 2 5 7
這是我正在使用的代碼:
datalist6 = matrix( nrow = length(unique(Data$feature)), ncol = length(sub),
dimnames = list(unique(Data$feature), unique(sub)))
sub <- colnames(Data[,c(3:46)])
for(i in Data$feature) {
for (j in sub){
subset <- filter(Data, feature==i & sub==j)
func <- j/subset$mean
datalist6[i,j] <- func
}
}
然后此代碼將拋出該錯誤。本質上,我試圖用列子集 $mean 中的平均值和 3:46 (sub) 列中的樣本方差來計算方差系數。我試圖通過嵌套的 for 回圈來確定每列每行(特征)的方差系數。
蒂亞!
uj5u.com熱心網友回復:
不需要for回圈。
假設您正在使用dplyr,
library(dplyr)
summarize(Data, feature, across(sample1:sample3, ~ . / mean))
# feature sample1 sample2 sample3
# 1 a 1.333333 2.666667 2.333333
# 2 b 0.850000 0.750000 1.500000
# 3 c 0.400000 1.000000 1.400000
如果您需要一個基本的 R 解決方案,
cbind(Data["feature"], subset(Data, select = sample1:sample3) / Data$mean)
# feature sample1 sample2 sample3
# 1 a 1.333333 2.666667 2.333333
# 2 b 0.850000 0.750000 1.500000
# 3 c 0.400000 1.000000 1.400000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/381509.html
