计算总和为零的行数:导入数据时出现问题?
Calculating how many rows sum to zero: problems importing data?
我有一个数据框 bwsp
,其中包含两个位置的许多物种的丰度数据,看起来像这样:
Location sp1 sp2 sp3 sp4
sample1 SiteA 0 12 0 0
sample2 SiteA 0 3 0 0
sample3 SiteA 1 0 0 0
sample4 SiteB 0 0 6 0
sample5 SiteB 2 1 1 0
sample6 SiteB 0 1 0 80
sample7 SiteB 2 1 1 0
sample8 SiteB 0 0 0 0
我使用以下方法计算每个样本中所有物种的总丰度:
bwsp$N <- rowSums(bwsp)
我现在想计算每个位置有多少样本(=行)的丰度为零(即 N=0)。我开始于:
library(tidyverse)
sum(bwsp$N == "0")
并发现没有行的总和为零。但我知道这是错误的! (我处理了这些样本,我知道有几个是 "empty"。)所以我检查了它:
> summary(bwsp$N)
看到最小的 N 是 1.0,我真的很惊讶。我仔细检查了 Excel 中的其他汇总统计数据,它们也不完全匹配。
这些只是舍入误差吗?我究竟做错了什么?
注意:我刚刚用上面提供的虚拟数据检查了这个,它工作得很好。这让我觉得我将数据输入 R 的方式有问题,即 bwsp <- read.csv("dummybwsp.csv", row.names = 1)
。
替换
bwsp$N <- rowSums(bwsp)
和
bwsp$N <- rowSums(bwsp[-1])
排除第一列,因为 rowSum() 需要数字数据。
一旦我减少了问题,我就能够回顾我的原始脚本并看到我的错误。在我的其他工作中,我首先使用以下方法计算了一些多样性指数:
bwsp$shann <- diversity(bwsp)
bwsp$simp <- diversity(bwsp, "simpson")
当然是加一,所以每行数据加一。我写的原始脚本没有问题,但有一个问题是我没有仔细考虑我处理数据的方式。
我能够通过指定计算中使用的数据列来修复此问题:
bwsp$shann <- diversity(bwsp[,1:64])
bwsp$simp <- diversity(bwsp[,1:64], "simpson")
bwsp$N <- rowSums(bwsp[,1:64])
呸!这是一个很好的提醒,让我真正思考我的数据!
我有一个数据框 bwsp
,其中包含两个位置的许多物种的丰度数据,看起来像这样:
Location sp1 sp2 sp3 sp4
sample1 SiteA 0 12 0 0
sample2 SiteA 0 3 0 0
sample3 SiteA 1 0 0 0
sample4 SiteB 0 0 6 0
sample5 SiteB 2 1 1 0
sample6 SiteB 0 1 0 80
sample7 SiteB 2 1 1 0
sample8 SiteB 0 0 0 0
我使用以下方法计算每个样本中所有物种的总丰度:
bwsp$N <- rowSums(bwsp)
我现在想计算每个位置有多少样本(=行)的丰度为零(即 N=0)。我开始于:
library(tidyverse)
sum(bwsp$N == "0")
并发现没有行的总和为零。但我知道这是错误的! (我处理了这些样本,我知道有几个是 "empty"。)所以我检查了它:
> summary(bwsp$N)
看到最小的 N 是 1.0,我真的很惊讶。我仔细检查了 Excel 中的其他汇总统计数据,它们也不完全匹配。
这些只是舍入误差吗?我究竟做错了什么?
注意:我刚刚用上面提供的虚拟数据检查了这个,它工作得很好。这让我觉得我将数据输入 R 的方式有问题,即 bwsp <- read.csv("dummybwsp.csv", row.names = 1)
。
替换
bwsp$N <- rowSums(bwsp)
和
bwsp$N <- rowSums(bwsp[-1])
排除第一列,因为 rowSum() 需要数字数据。
一旦我减少了问题,我就能够回顾我的原始脚本并看到我的错误。在我的其他工作中,我首先使用以下方法计算了一些多样性指数:
bwsp$shann <- diversity(bwsp)
bwsp$simp <- diversity(bwsp, "simpson")
当然是加一,所以每行数据加一。我写的原始脚本没有问题,但有一个问题是我没有仔细考虑我处理数据的方式。
我能够通过指定计算中使用的数据列来修复此问题:
bwsp$shann <- diversity(bwsp[,1:64])
bwsp$simp <- diversity(bwsp[,1:64], "simpson")
bwsp$N <- rowSums(bwsp[,1:64])
呸!这是一个很好的提醒,让我真正思考我的数据!