0
我遇到了嵌套和映射問題,我不知道如何解決。我有嵌套dataframes一個tibble,如下:將函數應用於嵌套數據框與地圖
> x
# A tibble: 18 × 3
event.no data dr.dur
<dbl> <list> <int>
1 1 <tibble [7 × 4]> 7
2 4 <tibble [123 × 4]> 123
3 5 <tibble [9 × 4]> 9
4 7 <tibble [14 × 4]> 14
5 10 <tibble [19 × 4]> 19
6 11 <tibble [220 × 4]> 220
7 12 <tibble [253 × 4]> 253
8 14 <tibble [153 × 4]> 153
9 15 <tibble [28 × 4]> 28
10 17 <tibble [169 × 4]> 169
11 18 <tibble [7 × 4]> 7
12 19 <tibble [115 × 4]> 115
13 21 <tibble [109 × 4]> 109
14 25 <tibble [13 × 4]> 13
15 26 <tibble [249 × 4]> 249
16 28 <tibble [7 × 4]> 7
17 30 <tibble [26 × 4]> 26
18 31 <tibble [12 × 4]> 12
>
> x$data[[1]]
# A tibble: 7 × 4
discharge threshold def.increase event.orig
<dbl> <dbl> <dbl> <dbl>
1 0.348 0.373 2160.0 1
2 0.348 0.373 2160.0 1
3 0.379 0.373 -518.4 0
4 0.379 0.373 -518.4 0
5 0.379 0.373 -518.4 0
6 0.379 0.373 -518.4 0
7 0.348 0.373 2160.0 2
>
我需要找到def.increase列的總和在每個嵌套dataframes的。我不知道現在要做這種權利的最好方法,這就是我一直在努力:
> x %>%
+ mutate(dr.def = map(data, colSums)) %>%
+ unnest(dr.def)
# A tibble: 72 × 3
event.no dr.dur dr.def
<dbl> <int> <dbl>
1 1 7 2.560
2 1 7 2.611
3 1 7 4406.400
4 1 7 4.000
5 4 123 45.739
6 4 123 45.879
7 4 123 12096.000
8 4 123 530.000
9 5 9 3.269
10 5 9 3.357
# ... with 62 more rows
顯然與此有關的問題是,我最終從每一行的總和。這樣會很好,但是之後只會選擇我想要的行。有沒有更好的方法來找到我的每個def.increase
列的列總和?感謝您的幫助:)
編輯:不知道我是否可以複製/粘貼對象像我x
所以這裏是對RDS的鏈接wetransfer(如果這是允許的):https://wetransfer.com/downloads/9697fff593f51c02136bc704adccbcc220170112161115/5be1fc
我更喜歡第一種選擇,因爲對我來說personall讀取更清晰一點年。我沒有長時間處理嵌套數據或映射。 'map_dbl'非常瞭解 - 我沒有意識到我可以在'map'上加上後綴 – Visser