2016-09-27 4 views
0

私は、x位置(transectに沿った距離)とz位置(与えられたx位置に対する地面からの距離)を持つ一連のデータ値でRで作業しています。各x、z座標にデータ値の測定値がないので、実行する必要がある分析を行うために、そこに0をコードする必要があります。短いコード例ですが、実際のデータは通常14,000〜20,000行です。 Matlabでは、空の行列を作成して、この問題を解決します。 max(z)に正規化されたx、z行列が必要です。したがって、以下のサンプルでは、​​最大zは8、最大xは4ですので、与えられた値が存在しない場合は常に0が入力される4 x 8行列が必要です。これで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で説明したのとほぼ同じ方法で行います。まず、すべてゼロで行列を作成します。

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

そして、あなたが選択した要素のベクトルを作成する必要があり、その後トリッキーな部分を、

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

何CBINDは基本的に2を作成してやっています行列の要素の集合を識別し、対応する値を代入するために使用される列行列。

関連する問題