我們給出以下R代碼,它遍歷矩陣A的每一行和列,如果該值爲正值,則將其保存爲矩陣狀態,if它是負數,計算指數值-1。R - 將多行代碼轉換爲單行表達式
qFunc1 <- function(A)
{
if (!is.matrix(A) || !is.numeric(A))
stop("A must be numeric matrix")
B <- matrix(NA, nrow=nrow(A), ncol=ncol(A))
for (i in seq_len(nrow(A)))
{
for (j in seq_len(ncol(A)))
{
if (!is.na(A[i, j]))
{
if (A[i, j] > 0)
B[i, j] <- A[i, j]
else
B[i, j] <- exp(A[i, j]) - 1
}
}
}
B
}
此代碼似乎給出正確的結果,但我們被要求給它作爲一個班輪,我似乎無法能夠實現一個行內的所有檢查。
所以問題是,如何在一行代碼中執行所有「if」檢查?
感謝您提前提供任何幫助!
喜歡的東西,我認爲。 A < - 矩陣(rnorm(16),4,4)'。 '(應用(A,1,函數(x)ifelse(x> 0,x,exp(x)-1)))'。請記住在一行之下有代碼。所以你的職能是一個班輪。 :-)。 – DJJ
這是偉大的,但不幸的是,我不允許使用任何類似於應用程序的功能......這是什麼給我的問題....:/ –