我使用for循環(這很好地工作),用NA來隨機地替換數據集的每一行中的兩個值(該值的索引是隨機變化的在每一行)。
現在我想用apply()來做同樣的事情。
我想這個代碼(如到處都返回NA很多其他的事情):R Apply()函數,而不是需要索引值的循環
my_fun<-function(x){if (j %in% sample(1:ncol(y),2)) {x[j]<-NA}}
apply(y,1,my_fun)
但它不工作(它不會做任何改變初始數據集)。
問題是找不到對象j
。 j應該是列的編號。 有人有想法嗎?
你必須從你的函數返回'x'。在一個函數調用中,參數被賦值給函數per **按值調用** – jogo
謝謝,但是這裏的問題是沒有找到對象j –
y是什麼對象?請使用'dput()'來顯示您的數據!如果'y'是一個矩陣(或一個data.frame),那麼'apply(y,1,my_fun)'將逐行發送到你的函數'my_fun'。因此,在函數my_fun中,對象'x'是一個向量(即來自'y'的一行)。 – jogo