为了账号安全,请及时绑定邮箱和手机立即绑定

对data.frame或matrix中的行求和

对data.frame或matrix中的行求和

摇曳的蔷薇 2019-08-28 10:20:25
对data.frame或matrix中的行求和我有一个非常大的数据框,其中行作为观察,列作为遗传标记。我想创建一个新列,其中包含使用R的每个观察的选定列数的总和。如果我有200列和100行,我想创建一个包含100行的新列,其中列为43到167列。列有1或0.新列包含每列的总和排,我将能够对具有最多遗传标记的个体进行排序。我觉得这很接近:data$new=sum(data$[,43:167])
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以使用 rowSums

rowSums(data) 应该给你你想要的东西。


查看完整回答
反对 回复 2019-08-28
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

rowSums函数(正如Greg提到的那样)会做你想要的,但你在答案中混合了子集化技术,在使用“[]”时不要使用“$”,你的代码看起来应该更像:

data$new <- rowSums( data[,43:167] )

如果你想使用除sum之外的函数,那么看看?申请在行或列中应用通用函数。


查看完整回答
反对 回复 2019-08-28
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

我来到这里希望找到一种方法来获取数据表中所有列的总和,并遇到实现上述解决方案的问题。在所有列中添加总和的方法使用以下cbind函数:

cbind(data, total = rowSums(data))

此方法total为数据添加一列,并避免在尝试使用上述解决方案对所有列求和时产生的对齐问题(有关此问题的讨论,请参阅下面的帖子)。

添加新列到矩阵错误


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 697 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信