【发布时间】:2019-08-12 12:09:06
【问题描述】:
我正在处理几个物种的植物覆盖数据,其中一些具有相同的属。数据集的每一列是一个物种,每一行是一个采样点。我只需要属级别的覆盖数据,我想对同一属内这些物种的列求和
我有类似的东西,但种类更多:
df<-data.frame('Abies.alba'= c(0, 1, 0, 0, 1), 'Acer.opalus'= c(0, 0, 1, 1, 1),
'Acer.campestre'= c(1, 0 , 1, 1, 0), 'Pinus.sylvestris'= c(1, 1, 1, 1, 1),
'Pinus.uncinata'= c(0, 0, 1, 0, 0))
我想要类似这样的东西:
df2<-data.frame('Abies'= c(0, 1, 0, 0, 1), 'Acer'= c(1, 0, 2, 2, 1),
'Pinus'= c(1, 1, 2, 1, 1))
我的主要问题是我要加入很多不同的属。我曾经考虑过转置数据框并对行求和,我以前做过,但我觉得必须有更好的方法。
【问题讨论】:
-
sapply(split.default(df, sub("\\..*", "", names(df))), rowSums)
标签: r