名前に基づいてリスト内のアイテムの平均を取得する簡単な方法はありますか? データセットの例:
sampleList <- list("a.1"=c(1,2,3,4,5), "b.1"=c(3,4,1,4,5), "a.2"=c(5,7,2,8,9), "b.2"=c(6,8,9,0,6))
sampleList
$a.1
[1] 1 2 3 4 5
$b.1
[1] 3 4 1 4 5
$a.2
[1] 5 7 2 8 9
$b.2
[1] 6 8 9 0 6
私がやろうとしているのは、似ているが同じ名前ではない行の間の列平均を取得し、 と の列平均を含むリストを出力することa's
ですb's
。現在、私は次のことができます:
y <- names(sampleList)
y <- gsub("\\.1", "", y)
y <- gsub("\\.2", "", y)
y <- sort(unique(y))
sampleList <- t(as.matrix(as.data.frame(sampleList)))
t <- list()
for (i in 1:length(y)){
temp <- sampleList[grep(y[i], rownames(sampleList)),]
t[[i]] <- apply(temp, 2, mean)
}
t
[[1]]
[1] 3.0 4.5 2.5 6.0 7.0
[[2]]
[1] 4.5 6.0 5.0 2.0 5.5
AI には、類似した名前のセットが多数含まれる大規模なデータセットがあります。これを行う簡単な方法はありますか?
編集:名前の問題を別の質問に分割しました。ここで見つけることができます