Я начну непосредственно с кода, это должно прояснить, какова цель:
library(gapminder)
head(gapminder)
# A tibble: 6 x 6
country continent year lifeExp pop gdpPercap
<fct> <fct> <int> <dbl> <int> <dbl>
1 Afghanistan Asia 1952 28.8 8425333 779.
2 Afghanistan Asia 1957 30.3 9240934 821.
3 Afghanistan Asia 1962 32.0 10267083 853.
4 Afghanistan Asia 1967 34.0 11537966 836.
5 Afghanistan Asia 1972 36.1 13079460 740.
6 Afghanistan Asia 1977 38.4 14880372 786.
Сохранение названий стран в другой переменной:
y <- unique(gapminder$country, incomparables = FALSE)
length(y)
[1] 142
df.names <- paste(y, sep = "")
Ожидаетсявывод:
Я хочу иметь 142 столбца +1 для year
и только значения pop
.Код, который я пробую, выглядит следующим образом:
for(i in 1:length(y)){
d.frame[,i] <- gapminder$pop %>% filter(gapminder$country==y[i])
assign(df.names[i], d.frame)
}
Этот код пытается присвоить значение pop
, соответствующее каждому year
в строках, а имя столбца соответствует country
.year
не использовался в коде, потому что я добавляю значение позже и прямо сейчас, просто выбирая значения country
и pop
на основе условия.Поскольку годы в этой таблице повторяются, Я хочу, чтобы этот столбец присутствовал только один раз (позже).Итак, итоговая таблица должна иметь размер 12 * 143 (12 строк и 143 столбца). Это не работает.
Есть идеи?Буду также признателен за любые предложения, касающиеся дизайна и структуры, если это необходимо.