1
私は4つの変数を自分のロングフォーマットのデータセットに追加し、それをフィルタリングしたいと考えています。 基本的に私は5年(2016-2020年)から始まります。 2016年は他の年に対してもっと多くの行を持っているので、2016年から2020年までの新しい列を変数の値を2016年の各行にコピーする変数として要約したいと思います。ExcelでSUMIFSでこれを行います。私はdplyrで一種の管理をしていますが、私は0を取得します。ここでデータ管理:条件で変数を追加する方法
newdt <- dt %>%
group_by(time, country, age5, sex1, geo) %>%
summarise(T.age.2017 = sum(value[time==2017]),
T.age.2018 = sum(value[time==2018]),
T.age.2019 = sum(value[time==2019]),
T.age.2020 = sum(value[time==2020])) %>%
ungroup() %>%
filter(time==2016)
は、私は、時間== 2016のためのフィルタリングとだけまとめ列として他の年を保つことで、取得したいのですが何が:
time country geo age5 sex1 value T.age.2017 T.age.2018
2016 AT AT11 0 1 6137 420814 427950
2016 AT AT11 5 1 6582 411300 416616
2016 AT AT11 10 1 6922 419810 418522
2016 AT AT11 15 1 7461 444286 439986
2016 AT AT11 0 2 5839 420814 427950
2016 AT AT11 5 2 6354 411300 416616
2016 AT AT11 10 2 6552 419810 418522
2016 AT AT11 15 2 6769 444286 439986
2016 AT AT12 0 1 39017 420814 427950
dput:
dt = structure(list(time = c(2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2017L,
2017L, 2017L, 2017L, 2018L, 2018L, 2018L, 2018L, 2019L, 2019L,
2019L, 2019L, 2020L, 2020L, 2020L, 2020L), country = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "AT", class = "factor"),
geo = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L,
11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L,
12L, 12L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("AT",
"AT1", "AT11", "AT12", "AT13", "AT2", "AT21", "AT22", "AT3",
"AT31", "AT32", "AT33", "AT34"), class = "factor"), age5 = c(0L,
5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L,
10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L,
15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L,
0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L,
5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L,
10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L,
15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L,
0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L,
5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L, 10L, 15L, 0L, 5L,
10L, 15L), sex1 = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), value = c(214538L, 210372L, 215218L,
239274L, 200991L, 200273L, 203787L, 221272L, 94210L, 91724L,
92439L, 100055L, 88171L, 87172L, 86792L, 93008L, 6137L, 6582L,
6922L, 7461L, 5839L, 6354L, 6552L, 6769L, 39017L, 40381L,
43136L, 47241L, 36855L, 38487L, 40292L, 42981L, 49056L, 44761L,
42381L, 45353L, 45477L, 42331L, 39948L, 43258L, 40212L, 40464L,
41996L, 47804L, 37323L, 38646L, 39861L, 44218L, 12266L, 12928L,
13451L, 15108L, 11554L, 12204L, 12827L, 13938L, 27946L, 27536L,
28545L, 32696L, 25769L, 26442L, 27034L, 30280L, 80116L, 78184L,
80783L, 91415L, 75497L, 74455L, 77134L, 84046L, 37488L, 36674L,
37456L, 42495L, 35219L, 34859L, 35959L, 38955L, 13774L, 13185L,
14012L, 16206L, 12907L, 12629L, 13265L, 14534L, 18414L, 17944L,
18544L, 20879L, 17482L, 17045L, 17609L, 19752L, 10440L, 10381L,
10771L, 11835L, 9889L, 9922L, 10301L, 10805L, 420814L, 411300L,
419810L, 444286L, 427950L, 416616L, 418522L, 439986L, 435796L,
420548L, 420646L, 436501L, 444137L, 425721L, 420044L, 437446L
)), .Names = c("time", "country", "geo", "age5", "sex1",
"value"), class = "data.frame", row.names = c(NA, -120L))
はい、正確に、ありがとう! – Ale