对data.frame或matrix中的行求和

对data.frame或matrix中的行求和

我有一个非常大的数据框,其中行作为观察,列作为遗传标记。我想创建一个新列,其中包含使用R的每个观察的选定列数的总和。

如果我有200列和100行,我想创建一个包含100行的新列,其中列为43到167列。列有1或0.新列包含每列的总和排,我将能够对具有最多遗传标记的个体进行排序。

我觉得这很接近:

data$new=sum(data$[,43:167])


摇曳的蔷薇
浏览 703回答 3
3回答

动漫人物

您可以使用 rowSumsrowSums(data) 应该给你你想要的东西。

蝴蝶刀刀

rowSums函数(正如Greg提到的那样)会做你想要的,但你在答案中混合了子集化技术,在使用“[]”时不要使用“$”,你的代码看起来应该更像:data$new&nbsp;<-&nbsp;rowSums(&nbsp;data[,43:167]&nbsp;)如果你想使用除sum之外的函数,那么看看?申请在行或列中应用通用函数。

MMMHUHU

我来到这里希望找到一种方法来获取数据表中所有列的总和,并遇到实现上述解决方案的问题。在所有列中添加总和的方法使用以下cbind函数:cbind(data,&nbsp;total&nbsp;=&nbsp;rowSums(data))此方法total为数据添加一列,并避免在尝试使用上述解决方案对所有列求和时产生的对齐问题(有关此问题的讨论,请参阅下面的帖子)。添加新列到矩阵错误
打开App,查看更多内容
随时随地看视频慕课网APP