将列拆分为R中的数据集

将列拆分为R中的数据集,r,split,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 我怎样才能做到这一点?我想使用分离,但这似

我是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

我怎样才能做到这一点?我想使用分离,但这似乎不是它的主要目的,有什么想法吗?

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

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  
库(tidyverse)
df%>%
完成(年、月=序列(最小(月)、最大(月))%>%
突变(yr=0('conc',yr))%>%
价差(年,浓度)
#2009年至2010年
#           
#1     1      0.6      0.5
#2     2      0.8      0.6
#3纳纳
#4 0.3 NA

使用
cast
功能