我正在寻求将数据框转换为其他格式以进行一些分析的帮助。
我现在拥有的是一个大数据集,如下所示
Season Species Biomass Abundance
Wet sp.a 3 5
Dry sp.b 2 4
Wet sp.a 16 25
Dry sp.a 2 1
Wet sp.b 20 40
... ... .. ..
我想要使用的是生物量和丰度作为列,种类作为行。单元格应为湿季或干季中相应物种的相应列的总和。最终表应如下所示。
Wet Season
Species Biomass Abundance
sp.a 19 30
sp.b 20 40
有人可以建议一种方法来对数据进行这种重新排列吗?我可以使用什么包装。非常感谢。
这是使用的选项 data.table
library(data.table)
setDT(df)[Season == "Wet",
.(Biomass = sum(Biomass), Abundance = sum(Abundance)) , by = .(Species)]
# Species Biomass Abundance
#1: sp.a 19 30
#2: sp.b 20 40
或搭配 base R
aggregate(.~Species, subset(df, Season == "Wet", select = -Season), FUN = sum)
# Species Biomass Abundance
#1 sp.a 19 30
#2 sp.b 20 40
df <- structure(list(Season = c("Wet", "Dry", "Wet", "Dry", "Wet"),
Species = c("sp.a", "sp.b", "sp.a", "sp.a", "sp.b"), Biomass = c(3L,
2L, 16L, 2L, 20L), Abundance = c(5L, 4L, 25L, 1L, 40L)),
class = "data.frame", .Names = c("Season",
"Species", "Biomass", "Abundance"), row.names = c(NA, -5L),
index = structure(integer(0), "`__Season`" = c(2L, 4L, 1L, 3L, 5L)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句