Base R reshape() 与 tidyverse

保罗·莱蒙斯

最近,我四处寻找一种快速的方法来从包含患者数据的宽数据帧中创建一个长数据帧,每个患者有多个测量值(假设最多五天的心率、血压和饱和度评分)。在谷歌搜索时,我曾期望从 tidyverse 和/或 reshape2 包中找到许多解决方案。但是,我实际上是从 base-R 中找到了这颗宝石

现在我不能放弃尝试使用 tidyverse 和/或 reshape2 中的一个或多个包来找到同样漂亮的“单线”。到目前为止,没有什么好东西出现,我希望得到一个提示。请注意,这个问题明确是关于一个漂亮/整洁、聪明的解决方案,而不是找到实际的解决方案。

来自链接帖子的数据:

id <- paste('x', "1.", 1:10, sep="")
set.seed(10)
DF <- data.frame(id, trt=sample(c('cnt', 'tr'), 10, T), work.T1=runif(10),
    play.T1=runif(10), talk.T1=runif(10), total.T1=runif(10),
    work.T2=runif(10), play.T2=runif(10), talk.T2=runif(10), 
    total.T2=runif(10))
斧头兵

我不认为有一个单一函数调用的 tidyverse 解决方案,但一个好的解决方案也没有那么复杂。我们需要先收集,然后将时间和密钥分开,然后再传播回来。

DF %>% 
    gather(key, val, -id, -trt) %>% 
    separate(key, c('key', 'time')) %>% 
    spread(key, val)
      id trt time       play       talk      total       work
1   x1.1  tr   T1 0.86472123 0.53559704 0.27548386 0.65165567
2   x1.1  tr   T2 0.03188816 0.07557029 0.86138244 0.35432806
3  x1.10 cnt   T1 0.35589774 0.50050323 0.80154700 0.83613414
4  x1.10 cnt   T2 0.21913855 0.20795168 0.17015172 0.50528560
5   x1.2 cnt   T1 0.61535242 0.09308813 0.22890394 0.56773775
6   x1.2 cnt   T2 0.11446759 0.53442678 0.46439198 0.93643254
7   x1.3 cnt   T1 0.77510990 0.16980304 0.01443391 0.11350898
8   x1.3 cnt   T2 0.46893548 0.64135658 0.22286743 0.24586639
9   x1.4  tr   T1 0.35556869 0.89983245 0.72896456 0.59592531
10  x1.4  tr   T2 0.39698674 0.52573932 0.62354960 0.47314146
11  x1.5 cnt   T1 0.40584997 0.42263761 0.24988047 0.35804998
12  x1.5 cnt   T2 0.83361919 0.03928139 0.20364770 0.19156087
13  x1.6 cnt   T1 0.70664691 0.74774647 0.16118328 0.42880942
14  x1.6 cnt   T2 0.76112174 0.54585984 0.01967341 0.58322197
15  x1.7 cnt   T1 0.83828767 0.82265258 0.01704265 0.05190332
16  x1.7 cnt   T2 0.57335645 0.37276310 0.79799301 0.45947319
17  x1.8 cnt   T1 0.23958913 0.95465365 0.48610035 0.26417767
18  x1.8 cnt   T2 0.44750805 0.96130241 0.27431890 0.46743405
19  x1.9  tr   T1 0.77077153 0.68544451 0.10290017 0.39879073
20  x1.9  tr   T2 0.08380201 0.25734157 0.16660910 0.39983256

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R:将tidyverse转换为dplyr / reshape2以进行绘图

来自分类Dev

tidyverse 替换 reshape() 用于带圆形后缀的面板数据

来自分类Dev

R:根据日期计算均值行。tidyverse

来自分类Dev

在R(tidyverse)轴中控制细节级别

来自分类Dev

R reshape2 dcast:转换数据

来自分类Dev

使用tidyverse的R中多列的加权和

来自分类Dev

如何从R / Tidyverse中的整齐数据生成整齐的表?

来自分类Dev

如何在Tidyverse R中显示完整的列名

来自分类Dev

在R中使用Tidyverse分离数据时遇到麻烦

来自分类Dev

使用R tidyverse,ggplot,geom_area的面积图

来自分类Dev

在tidyverse的mutate函数中,R函数必须使用什么参数?

来自分类Dev

在R中使用tidyverse进行汇总后保留列

来自分类Dev

R Tidyverse-通过ID随机化

来自分类Dev

R中的表操作-dplyr / tidyverse解决方案

来自分类Dev

使用R tidyverse保存并导出到Stata中

来自分类Dev

R tidyverse:移置但保持完整的一列

来自分类Dev

R:在tidyverse中创建一个函数

来自分类Dev

确定流销售数据的开始/结束日期 (R/Tidyverse)

来自分类Dev

R Tidyverse spread() 函数多位小数截断问题

来自分类Dev

R reshape wide to long: multiple variables, observations with multiple indicies

来自分类Dev

R添加/填充缺少的组合dcast reshape2表

来自分类Dev

在R中使用reshape2重塑数据

来自分类Dev

R reshape2'缺少聚合函数:默认为长度'

来自分类Dev

CRAN在roxygen @examples上检查错误:base :: assign和缺少reshape2

来自分类Dev

如何在R中使用tidyverse按组创建一个变量的值组合

来自分类Dev

如何在R中的数据框中映射列表列表?(tidyverse管道)

来自分类Dev

R:tidyverse选择列值并将其复制到其他列下

来自分类Dev

使用tidyverse动词将以下函数转换为以R为底的函数

来自分类Dev

从宽到长收集数据帧,并使用R中的tidyverse生成新列

Related 相关文章

  1. 1

    R:将tidyverse转换为dplyr / reshape2以进行绘图

  2. 2

    tidyverse 替换 reshape() 用于带圆形后缀的面板数据

  3. 3

    R:根据日期计算均值行。tidyverse

  4. 4

    在R(tidyverse)轴中控制细节级别

  5. 5

    R reshape2 dcast:转换数据

  6. 6

    使用tidyverse的R中多列的加权和

  7. 7

    如何从R / Tidyverse中的整齐数据生成整齐的表?

  8. 8

    如何在Tidyverse R中显示完整的列名

  9. 9

    在R中使用Tidyverse分离数据时遇到麻烦

  10. 10

    使用R tidyverse,ggplot,geom_area的面积图

  11. 11

    在tidyverse的mutate函数中,R函数必须使用什么参数?

  12. 12

    在R中使用tidyverse进行汇总后保留列

  13. 13

    R Tidyverse-通过ID随机化

  14. 14

    R中的表操作-dplyr / tidyverse解决方案

  15. 15

    使用R tidyverse保存并导出到Stata中

  16. 16

    R tidyverse:移置但保持完整的一列

  17. 17

    R:在tidyverse中创建一个函数

  18. 18

    确定流销售数据的开始/结束日期 (R/Tidyverse)

  19. 19

    R Tidyverse spread() 函数多位小数截断问题

  20. 20

    R reshape wide to long: multiple variables, observations with multiple indicies

  21. 21

    R添加/填充缺少的组合dcast reshape2表

  22. 22

    在R中使用reshape2重塑数据

  23. 23

    R reshape2'缺少聚合函数:默认为长度'

  24. 24

    CRAN在roxygen @examples上检查错误:base :: assign和缺少reshape2

  25. 25

    如何在R中使用tidyverse按组创建一个变量的值组合

  26. 26

    如何在R中的数据框中映射列表列表?(tidyverse管道)

  27. 27

    R:tidyverse选择列值并将其复制到其他列下

  28. 28

    使用tidyverse动词将以下函数转换为以R为底的函数

  29. 29

    从宽到长收集数据帧,并使用R中的tidyverse生成新列

热门标签

归档