この適用が正しく機能しない理由を誰かが説明できますか?私は、各行のすべての値を各行の値の合計で正規化したかったので、各行の合計= 1でした。しかし、これを適用関数を使って実行した場合、答えは正しくありません。R適用とループ計算
data <- data.frame(Sample=c("A","B","C"),val1=c(1235,34567,234346),val2=c(3445,23446,234235),val3=c(457643,234567,754234))
norm <- function(x){
x/sum(x)}
applymeth <- data
applymeth[,2:4] <- apply(applymeth[,2:4], 1, norm)
rowSums(applymeth[,2:4])
loopmeth <- data
for(i in 1:nrow(data)){
loopmeth[i,2:4] <- norm(loopmeth[i,2:4])
}
rowSums(loopmeth[,2:4])
ありがとうございます。
'apply()'は、行単位の入力から、あなたのケースでは(結果として)行列の列を列で与えます。 – jogo
ありがとうございます - それは混乱しています! – Harry