我想列印出每個日期的總金額,以便我的新資料框將具有日期和總金額列。我的資料框看起來像這樣
| 許可證號 | 數量 |
|---|---|
| 2022 年 6 月 1 日 | 吶 |
| 阿斯卡斯 | 30.00 |
| 奧利克 | 40.41 |
| 2022 年 6 月 2 日 | 吶 |
| 艾弗里 | 17.32 |
| fev | 32.18 |
| 灰色的 | 12.20 |
任何有關如何解決此問題的建議將不勝感激
uj5u.com熱心網友回復:
這是另一個tidyverse選項,我轉換為日期(然后重新格式化),然后我們可以填寫日期,以便我們可以使用它進行分組。然后,獲取每個日期的總和。
library(tidyverse)
df %>%
mutate(permitnum = format(as.Date(permitnum, "%m/%d/%Y"), "%m/%d/%Y")) %>%
fill(permitnum, .direction = "down") %>%
group_by(permitnum) %>%
summarise(total_amount = sum(as.numeric(amount), na.rm = TRUE))
輸出
permitnum total_amount
<chr> <dbl>
1 06/01/2022 70.4
2 06/02/2022 61.7
資料
df <- structure(list(permitnum = c("6/1/2022", "ascas", "olic", "6/2/2022",
"avrey", "fev", "grey"), amount = c("na", "30.00", "40.41", "na",
"17.32", "32.18", "12.20")), class = "data.frame", row.names = c(NA,
-7L))
uj5u.com熱心網友回復:
這是一個選項。按帶有數字的行標記的日期拆分資料,然后匯總總金額并將日期和所有行合并。
library(tidyverse)
dat <- read_table("permitnum amount
6/1/2022 na
ascas 30.00
olic 40.41
6/2/2022 na
avrey 17.32
fev 32.18
grey 12.20")
dat |>
group_split(id = cumsum(grepl("\\d", permitnum))) |>
map_dfr(\(x){
date <- x$permitnum[[1]]
x |>
slice(-1) |>
summarise(date = date,
total_amount = sum(as.numeric(amount)))
})
#> # A tibble: 2 x 2
#> date total_amount
#> <chr> <dbl>
#> 1 6/1/2022 70.4
#> 2 6/2/2022 61.7
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/529070.html
標籤:r数据分析探索性数据分析
