Я обновил свой ответ, основанный на наборе данных вы предоставили. Обратите внимание, что я все еще называю это dt
, а столбец Country
имеет столицу «C».
library(dplyr)
library(tidyr)
ColRef <- c(rep(1,6), rep(2,4),rep(5,4),rep(7,7),rep(9,3))
RowRef <- c(1:3,8,19,22,1:3,8,1:3,8,1:3,15,8,19,22,1:3)
Country <- c(rep(2,19),rep(4,5))
X2007 <- c(986,421,33,2,NA,NA,653,355,90,1,NA,NA,NA,NA,16,6,0,0,3,NA,NA,1650,777,123)
X2008 <- c(1092,376,44,1,NA,NA,3581,289,95,1,NA,NA,NA,NA,17,4,0,NA,5,NA,NA,4667,666,139)
X2009 <- c(1307,346,71,2,NA,NA,3182,301,121,3,NA,NA,NA,NA,26,12,0,0,9,NA,NA,4499,647,192)
X2010 <- c(1536,348,56,1,NA,NA,4441,718,224,7,NA,NA,NA,NA,24,10,0,NA,0,NA,NA,5991,1069,281)
dt <- data.frame(ColRef,RowRef, Country, X2007, X2008,X2009,X2010)
dt
# ColRef RowRef Country X2007 X2008 X2009 X2010
# 1 1 1 2 986 1092 1307 1536
# 2 1 2 2 421 376 346 348
# 3 1 3 2 33 44 71 56
# 4 1 8 2 2 1 2 1
# 5 1 19 2 NA NA NA NA
# 6 1 22 2 NA NA NA NA
# 7 2 1 2 653 3581 3182 4441
# 8 2 2 2 355 289 301 718
# 9 2 3 2 90 95 121 224
# 10 2 8 2 1 1 3 7
# 11 5 1 2 NA NA NA NA
# 12 5 2 2 NA NA NA NA
# 13 5 3 2 NA NA NA NA
# 14 5 8 2 NA NA NA NA
# 15 7 1 2 16 17 26 24
# 16 7 2 2 6 4 12 10
# 17 7 3 2 0 0 0 0
# 18 7 15 2 0 NA 0 NA
# 19 7 8 2 3 5 9 0
# 20 7 19 4 NA NA NA NA
# 21 7 22 4 NA NA NA NA
# 22 9 1 4 1650 4667 4499 5991
# 23 9 2 4 777 666 647 1069
# 24 9 3 4 123 139 192 281
# create vector of unique countries and X columns
Country_vector = unique(dt$Country)
X_vector = dt %>% select(matches("X")) %>% names()
# create a list to store results
List_res = list()
# starting point of list element counter
n = 1
for (i in Country_vector) { # i is the countries
for (j in X_vector) { # j is the X columns
# keep appropriate rows and columns
dt_test =
dt %>%
filter(Country == i) %>%
select(ColRef, RowRef, matches(j))
# create all possible combinations of ColRef and RowRef
dt_test2 =
expand.grid(ColRef = seq(min(dt$ColRef), max(dt$ColRef)),
RowRef = seq(min(dt$RowRef), max(dt$RowRef))) %>%
left_join(dt_test, by=c("ColRef","RowRef")) # join your actual values
# rename your X column so you can handle it no matter what your input is
names(dt_test2)[3] = "X"
# replace NA values with zeros
dt_test2[,"X"] = ifelse(is.na(dt_test2[,"X"]), 0, dt_test2[,"X"])
# reshape dataset
dt_test2 %>%
spread(ColRef, X) -> List_res[[n]]
# set the name of that element based on specific country and X column (at this iteration)
names(List_res)[n] = paste(i,j)
# get ready for next element and next iteration
n = n+1
}
}
# check results
List_res
# $`2 X2007`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 986 653 0 0 0 0 16 0 0
# 2 2 421 355 0 0 0 0 6 0 0
# 3 3 33 90 0 0 0 0 0 0 0
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 2 1 0 0 0 0 3 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
#
# $`2 X2008`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 1092 3581 0 0 0 0 17 0 0
# 2 2 376 289 0 0 0 0 4 0 0
# 3 3 44 95 0 0 0 0 0 0 0
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 1 1 0 0 0 0 5 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
#
# $`2 X2009`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 1307 3182 0 0 0 0 26 0 0
# 2 2 346 301 0 0 0 0 12 0 0
# 3 3 71 121 0 0 0 0 0 0 0
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 2 3 0 0 0 0 9 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
#
# $`2 X2010`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 1536 4441 0 0 0 0 24 0 0
# 2 2 348 718 0 0 0 0 10 0 0
# 3 3 56 224 0 0 0 0 0 0 0
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 1 7 0 0 0 0 0 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
#
# $`4 X2007`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 0 0 0 0 0 0 0 0 1650
# 2 2 0 0 0 0 0 0 0 0 777
# 3 3 0 0 0 0 0 0 0 0 123
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 0 0 0 0 0 0 0 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
#
# $`4 X2008`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 0 0 0 0 0 0 0 0 4667
# 2 2 0 0 0 0 0 0 0 0 666
# 3 3 0 0 0 0 0 0 0 0 139
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 0 0 0 0 0 0 0 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
#
# $`4 X2009`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 0 0 0 0 0 0 0 0 4499
# 2 2 0 0 0 0 0 0 0 0 647
# 3 3 0 0 0 0 0 0 0 0 192
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 0 0 0 0 0 0 0 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
#
# $`4 X2010`
# RowRef 1 2 3 4 5 6 7 8 9
# 1 1 0 0 0 0 0 0 0 0 5991
# 2 2 0 0 0 0 0 0 0 0 1069
# 3 3 0 0 0 0 0 0 0 0 281
# 4 4 0 0 0 0 0 0 0 0 0
# 5 5 0 0 0 0 0 0 0 0 0
# 6 6 0 0 0 0 0 0 0 0 0
# 7 7 0 0 0 0 0 0 0 0 0
# 8 8 0 0 0 0 0 0 0 0 0
# 9 9 0 0 0 0 0 0 0 0 0
# 10 10 0 0 0 0 0 0 0 0 0
# 11 11 0 0 0 0 0 0 0 0 0
# 12 12 0 0 0 0 0 0 0 0 0
# 13 13 0 0 0 0 0 0 0 0 0
# 14 14 0 0 0 0 0 0 0 0 0
# 15 15 0 0 0 0 0 0 0 0 0
# 16 16 0 0 0 0 0 0 0 0 0
# 17 17 0 0 0 0 0 0 0 0 0
# 18 18 0 0 0 0 0 0 0 0 0
# 19 19 0 0 0 0 0 0 0 0 0
# 20 20 0 0 0 0 0 0 0 0 0
# 21 21 0 0 0 0 0 0 0 0 0
# 22 22 0 0 0 0 0 0 0 0 0
Я добавляю еще один подход, который дает тот же результат, а не в отдельных списках, но в большой кадр данных с 2-мя ключевыми столбцами Country
и X
, а также не нужно использовать цикл (не являющийся поклонником петель лично).
library(dplyr)
library(tidyr)
ColRef <- c(rep(1,6), rep(2,4),rep(5,4),rep(7,7),rep(9,3))
RowRef <- c(1:3,8,19,22,1:3,8,1:3,8,1:3,15,8,19,22,1:3)
Country <- c(rep(2,19),rep(4,5))
X2007 <- c(986,421,33,2,NA,NA,653,355,90,1,NA,NA,NA,NA,16,6,0,0,3,NA,NA,1650,777,123)
X2008 <- c(1092,376,44,1,NA,NA,3581,289,95,1,NA,NA,NA,NA,17,4,0,NA,5,NA,NA,4667,666,139)
X2009 <- c(1307,346,71,2,NA,NA,3182,301,121,3,NA,NA,NA,NA,26,12,0,0,9,NA,NA,4499,647,192)
X2010 <- c(1536,348,56,1,NA,NA,4441,718,224,7,NA,NA,NA,NA,24,10,0,NA,0,NA,NA,5991,1069,281)
dt <- data.frame(ColRef,RowRef, Country, X2007, X2008,X2009,X2010)
# reshape dataset
dt2 = dt %>% gather(X,value,X2007:X2010)
# function
ff = function(i,j){
expand.grid(ColRef = seq(min(dt$ColRef), max(dt$ColRef)),
RowRef = seq(min(dt$RowRef), max(dt$RowRef))) %>%
left_join(dt2[dt2$Country==i & dt2$X==j,], by=c("ColRef","RowRef")) %>%
select(-Country, -X) %>%
spread(ColRef, value)}
# create all combinations between country and X values and apply the function
expand.grid(Country = unique(dt2$Country),
X = unique(dt2$X)) %>%
group_by(Country, X) %>%
do(ff(.$Country, .$X)) %>%
ungroup() %>% ## don't really need it if you don't mind keeping the grouping
print(n = nrow(.)) ## needed only to view/print all rows
# Source: local data frame [176 x 12]
#
# Country X RowRef 1 2 3 4 5 6 7 8 9
# (dbl) (fctr) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)
# 1 2 X2007 1 986 653 NA NA NA NA 16 NA NA
# 2 2 X2007 2 421 355 NA NA NA NA 6 NA NA
# 3 2 X2007 3 33 90 NA NA NA NA 0 NA NA
# 4 2 X2007 4 NA NA NA NA NA NA NA NA NA
# 5 2 X2007 5 NA NA NA NA NA NA NA NA NA
# 6 2 X2007 6 NA NA NA NA NA NA NA NA NA
# 7 2 X2007 7 NA NA NA NA NA NA NA NA NA
# 8 2 X2007 8 2 1 NA NA NA NA 3 NA NA
# 9 2 X2007 9 NA NA NA NA NA NA NA NA NA
# 10 2 X2007 10 NA NA NA NA NA NA NA NA NA
# 11 2 X2007 11 NA NA NA NA NA NA NA NA NA
# 12 2 X2007 12 NA NA NA NA NA NA NA NA NA
# 13 2 X2007 13 NA NA NA NA NA NA NA NA NA
# 14 2 X2007 14 NA NA NA NA NA NA NA NA NA
# 15 2 X2007 15 NA NA NA NA NA NA 0 NA NA
# 16 2 X2007 16 NA NA NA NA NA NA NA NA NA
# 17 2 X2007 17 NA NA NA NA NA NA NA NA NA
# 18 2 X2007 18 NA NA NA NA NA NA NA NA NA
# 19 2 X2007 19 NA NA NA NA NA NA NA NA NA
# 20 2 X2007 20 NA NA NA NA NA NA NA NA NA
# 21 2 X2007 21 NA NA NA NA NA NA NA NA NA
# 22 2 X2007 22 NA NA NA NA NA NA NA NA NA
# 23 2 X2008 1 1092 3581 NA NA NA NA 17 NA NA
# 24 2 X2008 2 376 289 NA NA NA NA 4 NA NA
# 25 2 X2008 3 44 95 NA NA NA NA 0 NA NA
# 26 2 X2008 4 NA NA NA NA NA NA NA NA NA
# 27 2 X2008 5 NA NA NA NA NA NA NA NA NA
# 28 2 X2008 6 NA NA NA NA NA NA NA NA NA
# 29 2 X2008 7 NA NA NA NA NA NA NA NA NA
# 30 2 X2008 8 1 1 NA NA NA NA 5 NA NA
# 31 2 X2008 9 NA NA NA NA NA NA NA NA NA
# 32 2 X2008 10 NA NA NA NA NA NA NA NA NA
# 33 2 X2008 11 NA NA NA NA NA NA NA NA NA
# 34 2 X2008 12 NA NA NA NA NA NA NA NA NA
# 35 2 X2008 13 NA NA NA NA NA NA NA NA NA
# 36 2 X2008 14 NA NA NA NA NA NA NA NA NA
# 37 2 X2008 15 NA NA NA NA NA NA NA NA NA
# 38 2 X2008 16 NA NA NA NA NA NA NA NA NA
# 39 2 X2008 17 NA NA NA NA NA NA NA NA NA
# 40 2 X2008 18 NA NA NA NA NA NA NA NA NA
# 41 2 X2008 19 NA NA NA NA NA NA NA NA NA
# 42 2 X2008 20 NA NA NA NA NA NA NA NA NA
# 43 2 X2008 21 NA NA NA NA NA NA NA NA NA
# 44 2 X2008 22 NA NA NA NA NA NA NA NA NA
# 45 2 X2009 1 1307 3182 NA NA NA NA 26 NA NA
# 46 2 X2009 2 346 301 NA NA NA NA 12 NA NA
# 47 2 X2009 3 71 121 NA NA NA NA 0 NA NA
# 48 2 X2009 4 NA NA NA NA NA NA NA NA NA
# 49 2 X2009 5 NA NA NA NA NA NA NA NA NA
# 50 2 X2009 6 NA NA NA NA NA NA NA NA NA
# 51 2 X2009 7 NA NA NA NA NA NA NA NA NA
# 52 2 X2009 8 2 3 NA NA NA NA 9 NA NA
# 53 2 X2009 9 NA NA NA NA NA NA NA NA NA
# 54 2 X2009 10 NA NA NA NA NA NA NA NA NA
# 55 2 X2009 11 NA NA NA NA NA NA NA NA NA
# 56 2 X2009 12 NA NA NA NA NA NA NA NA NA
# 57 2 X2009 13 NA NA NA NA NA NA NA NA NA
# 58 2 X2009 14 NA NA NA NA NA NA NA NA NA
# 59 2 X2009 15 NA NA NA NA NA NA 0 NA NA
# 60 2 X2009 16 NA NA NA NA NA NA NA NA NA
# 61 2 X2009 17 NA NA NA NA NA NA NA NA NA
# 62 2 X2009 18 NA NA NA NA NA NA NA NA NA
# 63 2 X2009 19 NA NA NA NA NA NA NA NA NA
# 64 2 X2009 20 NA NA NA NA NA NA NA NA NA
# 65 2 X2009 21 NA NA NA NA NA NA NA NA NA
# 66 2 X2009 22 NA NA NA NA NA NA NA NA NA
# 67 2 X2010 1 1536 4441 NA NA NA NA 24 NA NA
# 68 2 X2010 2 348 718 NA NA NA NA 10 NA NA
# 69 2 X2010 3 56 224 NA NA NA NA 0 NA NA
# 70 2 X2010 4 NA NA NA NA NA NA NA NA NA
# 71 2 X2010 5 NA NA NA NA NA NA NA NA NA
# 72 2 X2010 6 NA NA NA NA NA NA NA NA NA
# 73 2 X2010 7 NA NA NA NA NA NA NA NA NA
# 74 2 X2010 8 1 7 NA NA NA NA 0 NA NA
# 75 2 X2010 9 NA NA NA NA NA NA NA NA NA
# 76 2 X2010 10 NA NA NA NA NA NA NA NA NA
# 77 2 X2010 11 NA NA NA NA NA NA NA NA NA
# 78 2 X2010 12 NA NA NA NA NA NA NA NA NA
# 79 2 X2010 13 NA NA NA NA NA NA NA NA NA
# 80 2 X2010 14 NA NA NA NA NA NA NA NA NA
# 81 2 X2010 15 NA NA NA NA NA NA NA NA NA
# 82 2 X2010 16 NA NA NA NA NA NA NA NA NA
# 83 2 X2010 17 NA NA NA NA NA NA NA NA NA
# 84 2 X2010 18 NA NA NA NA NA NA NA NA NA
# 85 2 X2010 19 NA NA NA NA NA NA NA NA NA
# 86 2 X2010 20 NA NA NA NA NA NA NA NA NA
# 87 2 X2010 21 NA NA NA NA NA NA NA NA NA
# 88 2 X2010 22 NA NA NA NA NA NA NA NA NA
# 89 4 X2007 1 NA NA NA NA NA NA NA NA 1650
# 90 4 X2007 2 NA NA NA NA NA NA NA NA 777
# 91 4 X2007 3 NA NA NA NA NA NA NA NA 123
# 92 4 X2007 4 NA NA NA NA NA NA NA NA NA
# 93 4 X2007 5 NA NA NA NA NA NA NA NA NA
# 94 4 X2007 6 NA NA NA NA NA NA NA NA NA
# 95 4 X2007 7 NA NA NA NA NA NA NA NA NA
# 96 4 X2007 8 NA NA NA NA NA NA NA NA NA
# 97 4 X2007 9 NA NA NA NA NA NA NA NA NA
# 98 4 X2007 10 NA NA NA NA NA NA NA NA NA
# 99 4 X2007 11 NA NA NA NA NA NA NA NA NA
# 100 4 X2007 12 NA NA NA NA NA NA NA NA NA
# 101 4 X2007 13 NA NA NA NA NA NA NA NA NA
# 102 4 X2007 14 NA NA NA NA NA NA NA NA NA
# 103 4 X2007 15 NA NA NA NA NA NA NA NA NA
# 104 4 X2007 16 NA NA NA NA NA NA NA NA NA
# 105 4 X2007 17 NA NA NA NA NA NA NA NA NA
# 106 4 X2007 18 NA NA NA NA NA NA NA NA NA
# 107 4 X2007 19 NA NA NA NA NA NA NA NA NA
# 108 4 X2007 20 NA NA NA NA NA NA NA NA NA
# 109 4 X2007 21 NA NA NA NA NA NA NA NA NA
# 110 4 X2007 22 NA NA NA NA NA NA NA NA NA
# 111 4 X2008 1 NA NA NA NA NA NA NA NA 4667
# 112 4 X2008 2 NA NA NA NA NA NA NA NA 666
# 113 4 X2008 3 NA NA NA NA NA NA NA NA 139
# 114 4 X2008 4 NA NA NA NA NA NA NA NA NA
# 115 4 X2008 5 NA NA NA NA NA NA NA NA NA
# 116 4 X2008 6 NA NA NA NA NA NA NA NA NA
# 117 4 X2008 7 NA NA NA NA NA NA NA NA NA
# 118 4 X2008 8 NA NA NA NA NA NA NA NA NA
# 119 4 X2008 9 NA NA NA NA NA NA NA NA NA
# 120 4 X2008 10 NA NA NA NA NA NA NA NA NA
# 121 4 X2008 11 NA NA NA NA NA NA NA NA NA
# 122 4 X2008 12 NA NA NA NA NA NA NA NA NA
# 123 4 X2008 13 NA NA NA NA NA NA NA NA NA
# 124 4 X2008 14 NA NA NA NA NA NA NA NA NA
# 125 4 X2008 15 NA NA NA NA NA NA NA NA NA
# 126 4 X2008 16 NA NA NA NA NA NA NA NA NA
# 127 4 X2008 17 NA NA NA NA NA NA NA NA NA
# 128 4 X2008 18 NA NA NA NA NA NA NA NA NA
# 129 4 X2008 19 NA NA NA NA NA NA NA NA NA
# 130 4 X2008 20 NA NA NA NA NA NA NA NA NA
# 131 4 X2008 21 NA NA NA NA NA NA NA NA NA
# 132 4 X2008 22 NA NA NA NA NA NA NA NA NA
# 133 4 X2009 1 NA NA NA NA NA NA NA NA 4499
# 134 4 X2009 2 NA NA NA NA NA NA NA NA 647
# 135 4 X2009 3 NA NA NA NA NA NA NA NA 192
# 136 4 X2009 4 NA NA NA NA NA NA NA NA NA
# 137 4 X2009 5 NA NA NA NA NA NA NA NA NA
# 138 4 X2009 6 NA NA NA NA NA NA NA NA NA
# 139 4 X2009 7 NA NA NA NA NA NA NA NA NA
# 140 4 X2009 8 NA NA NA NA NA NA NA NA NA
# 141 4 X2009 9 NA NA NA NA NA NA NA NA NA
# 142 4 X2009 10 NA NA NA NA NA NA NA NA NA
# 143 4 X2009 11 NA NA NA NA NA NA NA NA NA
# 144 4 X2009 12 NA NA NA NA NA NA NA NA NA
# 145 4 X2009 13 NA NA NA NA NA NA NA NA NA
# 146 4 X2009 14 NA NA NA NA NA NA NA NA NA
# 147 4 X2009 15 NA NA NA NA NA NA NA NA NA
# 148 4 X2009 16 NA NA NA NA NA NA NA NA NA
# 149 4 X2009 17 NA NA NA NA NA NA NA NA NA
# 150 4 X2009 18 NA NA NA NA NA NA NA NA NA
# 151 4 X2009 19 NA NA NA NA NA NA NA NA NA
# 152 4 X2009 20 NA NA NA NA NA NA NA NA NA
# 153 4 X2009 21 NA NA NA NA NA NA NA NA NA
# 154 4 X2009 22 NA NA NA NA NA NA NA NA NA
# 155 4 X2010 1 NA NA NA NA NA NA NA NA 5991
# 156 4 X2010 2 NA NA NA NA NA NA NA NA 1069
# 157 4 X2010 3 NA NA NA NA NA NA NA NA 281
# 158 4 X2010 4 NA NA NA NA NA NA NA NA NA
# 159 4 X2010 5 NA NA NA NA NA NA NA NA NA
# 160 4 X2010 6 NA NA NA NA NA NA NA NA NA
# 161 4 X2010 7 NA NA NA NA NA NA NA NA NA
# 162 4 X2010 8 NA NA NA NA NA NA NA NA NA
# 163 4 X2010 9 NA NA NA NA NA NA NA NA NA
# 164 4 X2010 10 NA NA NA NA NA NA NA NA NA
# 165 4 X2010 11 NA NA NA NA NA NA NA NA NA
# 166 4 X2010 12 NA NA NA NA NA NA NA NA NA
# 167 4 X2010 13 NA NA NA NA NA NA NA NA NA
# 168 4 X2010 14 NA NA NA NA NA NA NA NA NA
# 169 4 X2010 15 NA NA NA NA NA NA NA NA NA
# 170 4 X2010 16 NA NA NA NA NA NA NA NA NA
# 171 4 X2010 17 NA NA NA NA NA NA NA NA NA
# 172 4 X2010 18 NA NA NA NA NA NA NA NA NA
# 173 4 X2010 19 NA NA NA NA NA NA NA NA NA
# 174 4 X2010 20 NA NA NA NA NA NA NA NA NA
# 175 4 X2010 21 NA NA NA NA NA NA NA NA NA
# 176 4 X2010 22 NA NA NA NA NA NA NA NA NA
Таким образом, вы можете видеть, что если вы выбираете Country = 2
и X = X2007
у вас есть подмножество, которое является таким же, как вашим первым список (ранее) и т.д.
Pls делится вашими данными так, чтобы мы могли их использовать. Скриншоты бесполезны в этом контексте. Было бы также полезно, если бы вы могли дать нам код, который вы пытались до сих пор. – vaettchen
Посмотрите на пакет с изменением формы. В частности, функция «cast». – kliron
@vaettchen - Я очень хорошо понимаю, что скриншоты бесполезны, Извините за это. Данные поступали из разных таблиц csv, вместе взятых, и мне было сложно воссоздать их с кодом. Мне удалось разбить таблицы для каждой страны, с DataMixC <- split (DataMix, с (DataMix, взаимодействие (Страна)), drop = TRUE), но у меня такое впечатление, что я ошибаюсь. Это должно быть сделано после .. – AnnePauline