2017-11-19 12 views
0

3つの行列(lat、lon、obs)をそれぞれの値が一致する1つのユニークな行列(data.frame)にマージします。3つの行列を3つの行列の1つの行列にマッチしてマージする

のは、私は次の行列を持っているとしましょう:

latitude_m 

    lat lat lat 
lat 3 12 4 
lat 5 45 9 
lat 12 33 1 

longitude_m 

    lon lon lon 
lon 1 34 3 
lon 23 5 1 
lon 2 2 9 

observations_m 

    obs obs obs 
obs 45 13 6 
obs 22 4 9 
obs 2 1 10 

私は次の取得できます:

lat lon obs 
3 1 45 
5 23 22 
12 2 2 
12 34 13 
45 5 4 
33 2 1 
4 3 6 
9 1 9 
1 9 10 

おかげ

+1

'data.frame(LAT = C(latitude_m)、経度= cで(longitute_m)を、リセットするのと同じくらい簡単ですobs = obsercations_m) ' – akrun

答えて

0

Akrunsソリューションはうまく動作しますが、念のためにいくつかあります各値のインデックスに関連付けられた情報は、配列として格納するのが賢明かもしれません。

set.seed(1) 
lon <- matrix(sample(-180:180, 9), 3) 
lat <- matrix(sample(-90:90, 9), 3) 
obs <- matrix(round(runif(9)*9, 1), 3) 

library(abind) 
arr <- abind(lon, lat, obs, along=3) 

あなたは、2つの次元にそれを崩壊する場合、それはdim()

dim(arr) <- c(9, 3) 
arr 
#  [,1] [,2] [,3] 
# [1,] -85 -79 3.4 
# [2,] -47 -53 7.0 
# [3,] 25 -59 8.4 
# [4,] 145 32 1.9 
# [5,] -108 -23 5.9 
# [6,] 139 45 1.1 
# [7,] 155 -3 2.4 
# [8,] 53 34 3.5 
# [9,] 42 81 0.1 
関連する問題