我有一个我认为相对简单的问题,我有一个很大的数据集,其中有数千个来自不同地点不同区域的观测数据,一般结构如下:
df <- data.frame(Site = as.factor(rep(c("Site.A","Site.B","Site.C"), 5)),
Response = as.numeric(runif(15, 0, 10)),
Habitat = as.factor(c("G","G","F","G","F",
"F","F","F","G","S",
"S", "S", "S","S","S")))
我想增加一栏,根据每个地点的栖息地数量确定每个地点的主要栖息地(即每个地点内大多数观察结果的栖息地)。
这应该是相对容易的东西沿着线:
dat %>%
group_by(Site) %>%
mutate(Dominant_Habitat = if_else(
(count(Habitat == "G") >=3, "G",
(count(Habitat == "F") >= 3, "F", "S"))
但我一辈子都找不到办法让它工作。谢谢,
1条答案
按热度按时间km0tfn4u1#
您可以将
count
和slice
作为每个Site
中出现频率最高的Habitat
(可能有联系),然后联接回初始数据集。