我有以下矩陣:子集化矩陣的值與載體(條件)
> matrix <- matrix(c(1,3,4,NA,NA,NA,3,0,4,6,0,NA,2,NA,NA,2,0,1,0,0), nrow=5,ncol=4)
> n <- matrix(c(1,2,5,6,2),nrow=5,ncol=1)
正如你可以看到,對於每個行我有
- 多個NAS - 數的NA未定義
- ONE單個 「0」
我想對於n的值,以子集0。下面的預期輸出。
> output <- matrix(c(1, 3, 4,NA,NA,NA,3,5,4,6,1,NA,2,NA,NA,2,2,1,6,2), nrow=5,ncol=4)
我曾嘗試以下
subset <- matrix == 0 & !is.na(matrix)
matrix[subset] <- n
#does not give intended output, but subset locates the values i want to change
當我的 「真實」 數據使用我得到以下信息:
警告消息:在M [子集] < - N的:要替換的項目數不是 替換長度的倍數
謝謝
編輯:添加一行到矩陣,因爲我的現實生活中的問題是與不平衡的矩陣。我在這裏使用矩陣而不是DF,因爲我認爲(不確定)對於非常大的數據集,R對於大矩陣而不是數據框的子集更快。
謝謝,這在我的「縮放」的例子。正在尋找這個 – Chrisftw