Как создать панельный (продольный) набор данных в R из данных поперечного сечения - PullRequest
0 голосов
/ 05 марта 2020

У меня есть 6 наборов данных поперечного сечения от периода времени = 1 до периода времени = 6. Всего 6 периодов времени. В каждом периоде времени есть 10 окрестностей, обозначенных идентификатором окрестности. Я хочу объединить их в один панельный / продольный набор данных, который выглядит следующим образом:

#   timeperiod    y     id   X1    X2   long   lat
#   1             0.1   1     ...   ...  ...    ...
#   2             0.2   1 
#   3             0.3   1 
#   4             0.4   1 
#   5             ...   1
#   6                   1
#   1                   2
#   2                   2
#   3                   2
#   4                   2
#   5                   2
#   6                   2

Вот мой код:

## Generate data by year

n   <- 10 # total number of neighborhoods
id  <- seq(1, n, 1) # neighborhood id

### 1st time period
y    =  runif(n, min=0, max=1)
t    =  rep(1,n)
X1   =  runif(n, min=0.1, max=2.3)
X2   =  runif(n, min=20,  max=100)
lat  =  runif(n, min=3374900.00001, max=3374909.99999)
long =  runif(n, min=8438800.00001, max=8438809.99999)
data_1 <- data.frame(cbind(t, y, id, X1, X2, long, lat))
### 2nd time period
y   =  runif(n, min=0, max=1)
t   =  rep(2,n)
X1  =  runif(n, min=0.3, max=2.67)
X2  =  runif(n, min=25,  max=103)
lat  =  runif(n, min=3374900.00001, max=3374909.99999)
long =  runif(n, min=8438800.00001, max=8438809.99999)
data_2 <- data.frame(cbind(t, y, id, X1, X2, long, lat))
### 3rd time period
y   =  runif(n, min=0, max=1)
t   =  rep(3,n)
X1  =  runif(n, min=1.12, max=4.35)
X2  =  runif(n, min=31,   max=111)
lat  =  runif(n, min=3374900.00001, max=3374909.99999)
long =  runif(n, min=8438800.00001, max=8438809.99999)
data_3 <- data.frame(cbind(t, y, id, X1, X2, long, lat))
### 4th time period
y   =  runif(n, min=0, max=1)
t   =  rep(4,n)
X1  =  runif(n, min=1.25, max=4.77)
X2  =  runif(n, min=38,   max=118)
lat  =  runif(n, min=3374900.00001, max=3374909.99999)
long =  runif(n, min=8438800.00001, max=8438809.99999)
data_4 <- data.frame(cbind(t, y, id, X1, X2, long, lat))
### 5th time period
y   =  runif(n, min=0, max=1)
t   =  rep(5,n)
X1  =  runif(n, min=1.44, max=5.52)
X2  =  runif(n, min=43,   max=124)
lat  =  runif(n, min=3374900.00001, max=3374909.99999)
long =  runif(n, min=8438800.00001, max=8438809.99999)
data_5 <- data.frame(cbind(t, y, id, X1, X2, long, lat))
### 6th time period
y   =  runif(n, min=0, max=1)
t   =  rep(6,n)
X1  =  runif(n, min=2.99, max=5.876)
X2  =  runif(n, min=52, max=133)
lat  =  runif(n, min=3374900.00001, max=3374909.99999)
long =  runif(n, min=8438800.00001, max=8438809.99999)
data_6 <- data.frame(cbind(t, y, id, X1, X2, long, lat))

Я пытался использовать для циклов, reshape, dplyr, но ничего из этого не сработало.

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...