我有一個資料集,其中包含多個“橫斷面”的不同型別的觀察結果。對 R 來說仍然很新,并且正在努力解決以下問題......
我需要計算每個樣帶中“巢”觀察的數量,但我收到一個錯誤,讓我覺得我可能沒有使用正確的函式?最后,我想創建一個名為“nest_number”的新列,它的觀察數之和等于嵌套。
資料格式如下:
| 樣帶 | 觀察 |
|---|---|
| 1A | 巢 |
| 1A | 不適用 |
| 1A | 巢 |
| 1A | 發聲 |
| 1A | 不適用 |
| 2A | 巢 |
| 2A | 不適用 |
| ... | ... |
這是我需要輸出的外觀:
| 樣帶 | 觀察 | 巢號 |
|---|---|---|
| 1A | 巢 | 2 |
| 1A | 不適用 | 2 |
| 1A | 巢 | 2 |
| 1A | 發聲 | 2 |
| 1A | 不適用 | 2 |
| 2A | 巢 | 1 |
| 2A | 不適用 | 1 |
| ... | ... | ... |
這是我使用的代碼
dfNew <- df %>%
group_by(transect) %>%
mutate(number_nests = colSums(observation == "nest", na.rm = TRUE))
我得到的錯誤是:
'x' 必須是至少有兩個維度的陣列 第 1 組中發生的錯誤:橫斷面 =“1A”。
uj5u.com熱心網友回復:
它應該是sum而不是colSums因為colSums期望 a data.frame/matrix,但這里我們正在sum對邏輯向量 ( observation == "nest")執行
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/433688.html
上一篇:用串列中的元素替換字串內部的前后
