我想創建一個 for 回圈,它計算vectA然后的標準偏差vectB。它將顯示它將計算的向量的名稱,std()然后列印std它的值。我怎樣才能使下面的代碼作業?
vectA <- c(1,6,7)
vectB <- c(8,9,11)
names <- c('A', 'B')
vects <- c(vectA,vectB)
for (i in seq_along(scale_vars)) {
print("Calculating for", names[i])
std(vects[i])
}
uj5u.com熱心網友回復:
如果使用 連接向量c(),它們會形成一個長向量。在您的情況下,vects 的長度為 6 并且只是c(1,6,7,8,9,10). 您必須使用串列來創建向量集合,您可以在其中按索引呼叫它們。此外,標準偏差的功能是sd(),您不能使用相同的列印陳述句列印兩個字符。你首先需要paste()他們。并且names是保留的。
嘗試這個:
vectA <- c(1,6,7)
vectB <- c(8,9,11)
vnames <- c('A', 'B')
vects <- list(vectA,vectB)
for (i in 1:2) {
print(paste("Calculating for", vnames[i]))
print(sd(vects[[i]]))
}
您還可以通過命名串列中的向量來使其更容易:
vectA <- c(1,6,7)
vectB <- c(8,9,11)
vects <- list("A"=vectA,"B"=vectB)
for (i in names(vects)) {
print(paste("Calculating for", i))
print(sd(vects[[i]]))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/523797.html
標籤:rfor循环数学向量性病
上一篇:編輯函式以適用于陣列而不是串列
下一篇:在R中的For回圈中迭代多個變數
