我不确定如何为这个问题加上标题,但这是我想要做的。我有一个带有“行程”列的数据框,另一个带有“物种捕获”列的数据框。我正在尝试计算我感兴趣的物种捕获每种物种的旅行次数。例如,假设5次旅行捕获了我感兴趣的物种和x物种。我在这里创建了一个简化的示例:
trip = c(1,1,1,2,2,3,3,3,3,4,5)
color = c("red","orange","green","red","orange","orange","green","blue","purple","red","green")
dat = as.data.frame(cbind(trip,color))
dat
> dat
trip color
1 1 red
2 1 orange
3 1 green
4 2 red
5 2 orange
6 3 orange
7 3 green
8 3 blue
9 3 purple
10 4 red
11 5 green
说这是我的数据框,我想计算包含红色加所有其他颜色的行程次数。因此,我最终得到一个看起来像这样的数据框:
color2 = c("orange","green","blue","purple")
trips.with.red = c(2,1,0,0)
dat2 = as.data.frame(cbind(color2,trips.with.red))
dat2
> dat2
color2 trips.with.red
1 orange 2
2 green 1
3 blue 0
4 purple 0
对于数据集中其他每种颜色,我都会看到一列,其中显示了包含该特定颜色和红色的行程次数。任何建议如何做到这一点将不胜感激。
使用dplyr
,如果组中的any
行trip
包含color
红色,则可以添加指示器。然后,按color
您可以summarise
对所有行程进行分组。
library(dplyr)
dat %>%
group_by(trip) %>%
mutate(trip_with_red = any(color == "red")) %>%
filter(color != "red") %>%
group_by(color) %>%
summarise(trips_with_red = sum(trip_with_red))
输出量
color trips_with_red
<chr> <int>
1 blue 0
2 green 1
3 orange 2
4 purple 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句