У меня есть фрейм данных 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")
и не нашел ни одной строки с нулевой суммой. Но я знаю, что это неправильно! (Я обработал образцы и знаю, что некоторые из них были «пустыми».) Я проверил это с помощью:
> summary(bwsp$N)
Я был очень удивлен, увидев, что минимальное значение N равно 1.0. Я дважды проверил другие сводные статистические данные в Excel, и они тоже не совсем совпадают.
Это просто ошибки округления? Что я делаю неправильно?
NB: Я только что проверил это с помощью фиктивных данных, которые я предоставил выше, и все сработало нормально. Это заставляет меня думать, что я делаю что-то не так с тем, как я загружаю данные в R, то есть bwsp <- read.csv("dummybwsp.csv", row.names = 1)
.
sum(rowSums(bwsp$N) == 0)
- person G5W   schedule 12.11.2018rowSums(bwsp[-1])
и посмотрите, совпадают ли результаты. Кроме того, вы не используетеlibrary(tidyverse)
в примере вопроса. Возможно, вы используете его в своем коде, но количество примеров вопросов должно быть минимальным. - person Rui Barradas   schedule 12.11.2018