2016-09-27 81 views
0

我在R中使用一系列具有x位置(沿橫斷面的距離)和z位置(距離給定x位置的距離)的數據值。在每個x,z座標處沒有數據值測量來做我需要執行的分析,我需要在那裏編寫一個0。這裏是一個簡短的代碼示例,實際數據通常是14,000-20,000行。在Matlab中,我們通過創建一個空矩陣並填充它來解決這個問題。我需要一個標準化爲max(z)的x,z矩陣。所以在下面的示例中,max z是8,max x是4,所以我需要一個4 x 8的矩陣,每當沒有給定的值時,將輸入0 - 只是不確定最好,最有效的方法這在R.將零值編碼到數據幀中

x <- c(1,1,1,1,1,2,2,3,3,4,4,4) 
z <- c(1,4,5,6,7,1,4,2,8,1,2,5) 
value <- c(9,9,9,9,9,9,9,9,9,9,9,9) 

data.frame(x,z, value) 

非常感謝!

+0

http://stackoverflow.com/questions/11993810/r-selecting-specific-elements-from-a-matrix-all-at-once可能會更好,因爲重複,雖然它假設更多關於R – user295691

回答

1

在R中,您將以與您在Matlab中描述的方式大致相同的方式進行操作。首先,創建一個矩陣全0:

df <- data.frame(x, z, value) 
mat <- matrix(0, 4, 8) 

然後是棘手的部分,在那裏你必須創建所選元素的矢量

mat[cbind(df$x, df$z)] <- df$value 

什麼cbind基本上做的是創造一個2列矩陣用於識別矩陣中的一組元素,然後分配相應的值。