小编Aus*_*man的帖子

r tidyverse spread()使用多个键值对不折叠行

我正在尝试spread()几个键/值对,但公共值列不会折叠。我认为这可能与先前的处理有关,或更可能是我不知道散布两个或更多键/值对以获得我期望的结果的正确方法。

我从这个数据集开始:

library(tidyverse)

df <- tibble(order = 1:7,
             line_1 = c(23,8,21,45,68,31,24),
             line_2 = c(63,25,25,24,48,24,63),
             line_3 = c(62,12,10,56,67,25,35))
Run Code Online (Sandbox Code Playgroud)

有2个预扩展步骤,用于定义在以下collect()函数中创建的“计数”值的顺序。这是使用行号定义“ count”变量的原始顺序的第一个预扩展步骤:

ntrl <- df %>%
           gather(line_1,
                  line_2,
                  line_3,
                  key = "sector",
                  value = "count") %>%
           group_by(order) %>%
           mutate(sector_ord = row_number()) %>%
           arrange(order,
                   sector)
Run Code Online (Sandbox Code Playgroud)

这是第二个预扩展步骤,用于定义“ count”变量的数字顺序:

ord <- ntrl %>%
            arrange(order,
                    count) %>%
            group_by(order) %>%
            mutate(num_ord = paste0("ord_",
                                    row_number(),
                                    sep=""))
Run Code Online (Sandbox Code Playgroud)

最后是我一直在使用的传播代码:

wide <- ord %>%
            group_by(order) %>%
            spread(key = sector,
                   value = count) %>%
            spread(key = num_ord,
                   value = sector_ord)
Run Code Online (Sandbox Code Playgroud)

我得到的是:

    order   line_1 …
Run Code Online (Sandbox Code Playgroud)

r spread tidyverse

5
推荐指数
1
解决办法
1647
查看次数

在 tidyverse 中按时间顺序排序月份名称

因此,我已经阅读了许多方法,可以在基础 R 中或通过 tidyverse 方法按名称对月份进行排序,但所有方法都需要用户定义的函数和/或一些非常冗长的语言。

下面是一个例子: 使用 dplyr 中的排列()按时间顺序对月份进行排序

这是几乎所有涉及日期或时间的分析的基本需求。当然,必须有一个函数,例如带有“日历”(也可能是 descd-calendar)参数的排列()。或者我错过了什么?

sorting r dplyr tidyverse

3
推荐指数
1
解决办法
4377
查看次数

标签 统计

r ×2

tidyverse ×2

dplyr ×1

sorting ×1

spread ×1