小编dav*_*325的帖子

是否有更有效或更简洁的方法来使用 tidyr::gather 使我的数据看起来“整洁”?

我是使用 tidyverse 的新手。我想看看我使用这个包中的函数是否尽可能高效/简洁。我怀疑我不是。

我的原始数据将键 sym 作为每个列名的一部分。

   day         a_x        b_x        a_y         b_y
1    1 -0.56047565  1.2240818 -1.0678237  0.42646422
2    2 -0.23017749  0.3598138 -0.2179749 -0.29507148
...
Run Code Online (Sandbox Code Playgroud)

我想让数据看起来整洁,像这样:

     day sym         x      y
 1     1 a      0.118   0.702
 2     2 a     -0.947  -0.262
...
11     1 b      1.44    0.788
12     2 b      0.452   0.769

Run Code Online (Sandbox Code Playgroud)

这是我执行上述转换的代码:

library(tidyverse)
set.seed(123)

# example original table
d <- tibble(day=1:10,a_x=rnorm(10),b_x=rnorm(10),a_y=rnorm(10),b_y=rnorm(10))

# manipulations
d1 <- gather(d,a_x,b_x,key='sym',value='x') %>% mutate(sym=sub('_x','',sym)) %>% select(day,sym,x)
d2 <- gather(d,a_y,b_y,key='sym',value='y') %>% mutate(sym=sub('_y','',sym)) %>% select(day,sym,y)
d <- d1 %>% …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr tidyverse tibble

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

标签 统计

dplyr ×1

r ×1

tibble ×1

tidyr ×1

tidyverse ×1