使用 dplyr 计算一个字符串并在 R 中的新列中将它们求和?



我有一个数据集,在几个";横断面";。对R来说仍然是个新手,正在为以下问题而挣扎。。。

我需要计算";巢;在每个样带中的观察结果,但我得到了一个错误,这让我认为我可能没有使用正确的函数?最后,我想创建一个名为";nest_ number";其具有等于nest的观测次数的总和。

数据的格式如下:

观测
样带
1A 嵌套
1A NA
1A 嵌套
1A 发声
1A NA
2A 嵌套
2A NA

它应该是sum而不是colSums,因为colSums需要data.frame/matrix,但这里我们在逻辑向量(observation == "nest"(上执行sum

library(dplyr)
df %>% 
group_by(transect) %>% 
mutate(nest_number = sum(observation == "nest", na.rm = TRUE)) %>%
ungroup

-输出

# A tibble: 7 × 3
transect observation  nest_number
<chr>    <chr>              <int>
1 1A       nest                   2
2 1A       <NA>                   2
3 1A       nest                   2
4 1A       vocalization           2
5 1A       <NA>                   2
6 2A       nest                   1
7 2A       <NA>                   1

最新更新