循环以按行和 运行 函数删除具有 NA 的列(对每一行执行此操作)

Loop to remove columns with NAs by row and run function (do this for each row)

我正在 运行 包 vegan 中的功能多样性,但我的数据集包含许多 NA。该函数按行(即图)计算多样性,但如果该行具有 NA,则将 return NA。我看了看,但找不到使用此功能的 NA 解决方案。唯一(也许)可以解决这个问题的方法是每次我 运行 函数时删除带有 NA 的列,但是手动执行此操作将永远花费。我不能简单地从我的数据集中删除所有 NA,因为这也会删除整行并且我有一些包含数据的列。

如何循环按行删除带有 NA 的列,运行 函数,存储多样性输出,然后对下一行执行相同操作直到最后一行?

数据集示例:

|species1|species2|species3|species4|species5|species6|species7|species8|
|________|________|________|________|________|________|________|________|
|NA      |90      |75      |NA      |NA      |NA      |NA      |60      |
|90      |NA      |75      |NA      |90      |NA      |90      |60      |
|NA      |NA      |NA      |NA      |NA      |NA      |NA      |33      |
|60      |90      |75      |NA      |30      |NA      |NA      |46      |
|NA      |90      |75      |NA      |NA      |NA      |NA      |NA      |

以及多样性函数:

library("vegan")
diversity(dataset, "invsimpson")

非常感谢任何帮助。谢谢!

你的数据集是物种 x 位点矩阵吗?即行是 sites/samples,列是物种?

如果是这样,用零表示在那个地点没有检测到一个物种是正常的,而不是“NA”。我知道仅仅因为你没有检测到一个物种,并不意味着它不存在,但大多数生态群落数据分析都会考虑到这一点。