R 根据分组变量的级别拆分数据帧的一个变量值

R 根据分组变量的级别拆分数据帧的一个变量值,r,dataframe,dplyr,split,multiple-columns,R,Dataframe,Dplyr,Split,Multiple Columns,如何根据另一个分组变量的级别将一个变量值拆分为数据框的列 假设我有一个如下所示的数据帧 Site Species dbh 1 sp1 2.8 1 sp2 2.2 2 sp1 4.0 2 sp2 1.5 3 sp1 3.9 3 sp2 2.5 我希望得到如下输出,其中分组变量(物种)的级别成为数据帧的列,dbh值作为分组变量的每个级别的值 Site sp1 sp2 1 2.8 2.2 2 4.0

如何根据另一个分组变量的级别将一个变量值拆分为数据框的列

假设我有一个如下所示的数据帧

Site Species dbh
1    sp1     2.8
1    sp2     2.2
2    sp1     4.0
2    sp2     1.5
3    sp1     3.9
3    sp2     2.5
我希望得到如下输出,其中分组变量(物种)的级别成为数据帧的列,dbh值作为分组变量的每个级别的值

Site sp1  sp2
1    2.8  2.2
2    4.0  1.5
3    3.9  2.5
我将感谢你的宝贵建议

问候,


法罕

这被称为“重塑”或“支点”。有数百个教程,所以有关于它的问题

dat%pivot\u更宽(值取自“胸径”,名称取自“物种”)
#>#tibble:3 x 3
#>站点sp1 sp2
#>     
#> 1     1   2.8   2.2
#> 2     2   4     1.5
#> 3     3   3.9   2.5
带有
数据。表

库(data.table)
setDT(dat)
dcast(dat,地点~物种)
#>使用“dbh”作为值列。使用“value.var”覆盖
#>站点sp1 sp2
#> 1:    1 2.8 2.2
#> 2:    2 4.0 1.5
#> 3:    3 3.9 2.5

如果您使用的是base R,请尝试
重塑

reshape(
  df,
  direction = "wide",
  idvar = "Site",
  timevar = "Species"
)

  Site dbh.sp1 dbh.sp2
1    1     2.8     2.2
3    2     4.0     1.5
5    3     3.9     2.5

非常感谢您的快速回复。这真的帮了我的忙,非常感谢。非常感谢您的快速回复。