我有兩個資料集。一個是我研究中的物種以及我觀察它們的次數,另一個是更大的資料集,是一個更廣泛的觀察資料庫。
我想從另一個資料集中的數值中對我的短資料集中的 "觀察到的最低緯度"(或最高緯度或平均緯度)一列進行突變,但我不太明白如何在突變中與它們相匹配。
set.seed(1)
# my dataset.sightings對于這個問題并不重要,重要的是這個解決方案不會弄亂現有的列。
fake_spp_df <- data.frame()
種= c("a"/span>。 "b"。 "c", "d", 'e'),
看見= c(5。 1。 2,6,3)
)
#更廣泛的發生率資料集
fake_spp_occurrences <- data.frame()
種 = rep(c("a", "b","c"。 "d",'f')。 each=20), # notice spp "f" - not all species are same between datasets。
緯度 = runif(100。 min = 0。 max = 80),
經度 = runif(100。 min=-90。 max = -55)
)
#所以我知道要找到一個物種的最小值,我可以這樣做:
min(fake_spp_occurrences$latitude[/span>fake_spp_occurrences$species == "a"])。
# 但我想在mutate()中做到這一點。
# 這是我失敗的嘗試:
fake_spp_df%>%
mutate(lowest_lat = min(fake_spp_occurrences$) operator">$latitude[fake_spp_occurrences$species == species])
)
期望的結果:
>/span> fake_spp_df
物種目擊率 最低值 最大值 中值 最低值
1 a 5 1.7 等等。
2 b 1 5.3 等。
3 c2 2.2
4 D 6 4.3
5 e 3 NA
我想這也可以通過某種連接或合并來完成,但我不確定。
謝謝!
uj5u.com熱心網友回復:
summarise fake_spp_occurrences資料集,然后執行連接。
library(dplyr)
fake_spp_occurrences %>%
group_by(species) %>%
summarise(lowest_lat= min(latitude)。
max_lat = max(latitude),/span>
median_lat = median(latitude) %>;%
right_join(fake_spp_df, by = 'species')
# species lowest_lat max_lat median_lat sightings
# <chr> <dbl> <dbl> <dbl>
#1 a 4.94 79.4 48.1 5
#2 b 1.07 74.8 35.7 1
#3 c 1.87 68.9 41.9 2
#4 d 6.74 76.8 38.2 6
#5 e NA NA NA 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/320160.html
標籤:
