将列拆分为R中的数据集

时间:2019-04-16 10:12:14

标签: r split

我是R的新手,我试图将我得到的数据分离到更易于管理的数据集中。

到目前为止,数据集看起来像这样

mo  yr  conc.
1  2009 0.6
2  2009 0.8
4  2009 0.3
1  2010 0.5
2  2010 0.6

我正在尝试将其制作成这样的形式

mo conc2009 conc2010
1  0.6        0.5
2  0.8        0.6
3  NA         NA
4  0.3        NA

我该如何实现?我当时在考虑使用单独的方法,但这似乎不是主要目的,是什么主意?

1 个答案:

答案 0 :(得分:1)

我们可以使用complete为每个mo创建yr的最大值和最小值之间的序列,然后将其扩展为宽格式。

library(tidyverse)

df %>%
  complete(yr, mo = seq(min(mo), max(mo))) %>%
  mutate(yr = paste0('conc', yr)) %>%
  spread(yr, conc)

#     mo  conc2009 conc2010
#   <int>    <dbl>    <dbl>
#1     1      0.6      0.5
#2     2      0.8      0.6
#3     3      NA       NA  
#4     4      0.3      NA