Ron*_*hah 5
这是一个tidyverse
尝试 -
plete
创建缺少月份的行。
arrange
这样您就可以按正确的顺序排列列。
使用pivot_wider
.
library(dplyr)
library(tidyr)
df %>%
plete(MONTH = tolower(month.abb)) %>%
arrange(match(MONTH, tolower(month.abb))) %>%
pivot_wider(names_from = MONTH, values_from = MONTH,
values_fn = length, values_fill = 0) %>%
na.omit
# NAME AMT jan feb mar apr may jun jul aug sep oct nov dec
# <chr> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
#1 brett 100 1 0 1 0 0 0 0 0 0 0 1 0
#2 sam 200 1 1 1 0 0 0 0 0 0 0 0 0
#3 brett 50 0 0 0 1 0 1 0 0 0 0 0 0
#4 jane 75 0 0 0 0 0 0 0 0 0 0 0 1
请注意,这month.abb
是内置的 R 向量,它给出了缩写的月份名称。我曾经tolower(month.abb)
将它与数据中的实际列名匹配。
数据
df <- structure(list(NAME = c("brett", "brett", "brett", "brett", "brett",
"jane", "sam", "sam", "sam"), AMT = c(100L, 100L, 100L, 50L,
50L, 75L, 200L, 200L, 200L), MONTH = c("jan", "mar", "nov", "apr",
"jun", "dec", "jan", "feb", "mar")),
class = "data.frame", row.names = c(NA, -9L))
更多推荐
独特,如何在,excel
发布评论