2차원 행렬구조를 1차원의 벡터로 변환하여 조작하기… 격자망의 위성공간데이터의 값을 합성하는 로직..

각각 10 by 10 의 매트릭스(위성격자)를 만들어 1차원 벡터로 펴고.. 각 요소의 값들을 합성(평균/최대/최소) 한 후, 다시 원래의 2차원 배열로 복귀하기..

a <- matrix(1:9, nrow = 3)
class(a)
[1] "matrix"
a
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
m2 <- matrix(sample(1:100, 100, replace=T),nrow = 10)
class(m2)
m2

2차원 배열을 1차원으로 폄! reshape, flatten

v1<-as.vector(t(a))
class(v1)
[1] "integer"
v1
[1] 1 4 7 2 5 8 3 6 9
v2<-as.vector(t(m2))
class(v2)
v2

2개의 flatten vector를 데이터프레임으로 합치기

df1 <- data.frame(v1,v2)
str(df1)
head(df1)

v3의 합성컬럼 생성(산출)

df1$V3 <- apply(df1, 1, mean) #행의 연산
head(df1, 15)

새로 생성한 합성컬럼 V3를 다시 2차원 배열의 공간격자 매트릭스로 환원시키기

matrix(v1, 3, 3, byrow=T)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
library(psych)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCjLssKjsm5Ag7ZaJ66Cs6rWs7KGw66W8IDHssKjsm5DsnZgg67Kh7YSw66GcIOuzgO2ZmO2VmOyXrCDsobDsnpHtlZjquLAuLi4K6rKp7J6Q66ed7J2YIOychOyEseqzteqwhOuNsOydtO2EsOydmCDqsJLsnYQg7ZWp7ISx7ZWY64qUIOuhnOyngS4uCgrqsIHqsIEgMTAgYnkgMTAg7J2YIOunpO2KuOumreyKpCjsnITshLHqsqnsnpAp66W8IOunjOuTpOyWtCAx7LCo7JuQIOuyoe2EsOuhnCDtjrTqs6AuLgrqsIEg7JqU7IaM7J2YIOqwkuuTpOydhCDtlanshLEo7Y+J6regL+y1nOuMgC/stZzshowpIO2VnCDtm4QsCuuLpOyLnCDsm5DrnpjsnZggMuywqOybkCDrsLDsl7TroZwg67O16reA7ZWY6riwLi4KCmBgYHtyfQptMSA8LSBtYXRyaXgoc2FtcGxlKDE6MTAwLCAxMDAsIHJlcGxhY2U9VCksbnJvdyA9IDEwKQpjbGFzcyhtMSkKbTEKYGBgCgpgYGB7cn0KbTIgPC0gbWF0cml4KHNhbXBsZSgxOjEwMCwgMTAwLCByZXBsYWNlPVQpLG5yb3cgPSAxMCkKY2xhc3MobTIpCm0yCmBgYAoKMuywqOybkCDrsLDsl7TsnYQgMeywqOybkOycvOuhnCDtj4QhIHJlc2hhcGUsIGZsYXR0ZW4KYGBge3J9CnYxPC1hcy52ZWN0b3IodChtMSkpCmNsYXNzKHYxKQp2MQpgYGAKYGBge3J9CnYyPC1hcy52ZWN0b3IodChtMikpCmNsYXNzKHYyKQp2MgpgYGAKCjLqsJzsnZggZmxhdHRlbiB2ZWN0b3Lrpbwg642w7J207YSw7ZSE66CI7J6E7Jy866GcIO2Vqey5mOq4sApgYGB7cn0KZGYxIDwtIGRhdGEuZnJhbWUodjEsdjIpCnN0cihkZjEpCmhlYWQoZGYxKQpgYGAKdjPsnZgg7ZWp7ISx7Lus65+8IOyDneyEsSjsgrDstpwpCmBgYHtyfQpkZjEkVjMgPC0gYXBwbHkoZGYxLCAxLCBtZWFuKSAj7ZaJ7J2YIOyXsOyCsApoZWFkKGRmMSwgMTUpCmBgYAoK7IOI66GcIOyDneyEse2VnCDtlanshLHsu6zrn7wgVjPrpbwg64uk7IucIDLssKjsm5Ag67Cw7Je07J2YIOqzteqwhOqyqeyekCDrp6Ttirjrpq3siqTroZwg7ZmY7JuQ7Iuc7YKk6riwCmBgYHtyfQpvcHRpb25zKGRpZ2l0cyA9IDMpCm0zIDwtbWF0cml4KGRmMSRWMywgMTAsIDEwLCBieXJvdz1UKSAjIDEwIGJ5IDEwIOqyqeyekOunnSDtlonroKzroZwg7J6s7KCV7J2Y7ZW07KSMIQptMwpgYGAKCmBgYHtyfQpsaWJyYXJ5KHBzeWNoKQpgYGAKCgoKCgoKCgoKCgoKCgoKCgoK