gpt4 book ai didi

r - 使用 matrixStats::rowMedians 查找每一行的中位数

转载 作者:行者123 更新时间:2023-12-01 22:06:25 24 4
gpt4 key购买 nike

我正在尝试使用 matrixStats 包中的 rowMedians 计算数据框 df 的行中位数。

Abundance Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 Sample7
Species1 2 4 0 0 0 6 0
Species2 3 5 6 4 0 0 0
Species3 3 7 2 5 8 0 0
Species4 0 0 3 8 0 0 8
Species5 7 5 6 0 0 4 4
Species6 4 2 3 0 0 2 1

我想计算每一行的中位数并将它们追加到一个新列中。我遇到了一个错误

Argument 'x' must be a vector or matrix

所以我尝试将我的 df 转换为矩阵。 str 函数显示该物种的每个值都是数字,因此我尝试了:

library(matrixStats)
matrix(df, rownames.force = NA)
rowMedians(df)

但我仍然遇到同样的错误。感谢您的帮助。

最佳答案

您不想在中位数计算中包括 Abundance 列。让 df 成为您当前的数据框。

library(matrixStats)
rowMedians(as.matrix(df[-1]))

除了上面的正确代码之外的一些注释。

  1. 你检查过matrix(df)是什么了吗?
  2. 即使它正确地返回一个数字矩阵,它也不会覆盖 df。所以 rowMedians(df) 给你同样的错误,就好像什么都没发生一样;
  3. 作为练习,比较 as.matrix(df[-1])as.matrix(df)

了解这些问题可以防止您将来犯错误。

关于r - 使用 matrixStats::rowMedians 查找每一行的中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51525152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com