【发布时间】:2020-10-16 16:52:44
【问题描述】:
我是一个新手,试图分析 R 中的陷阱捕获数据,并且正在寻找一种有效的方法来循环通过陷阱线。第一列是陷阱 ID。第二列是每个陷阱关联的陷阱线。其余列是与每次访问陷阱的目标捕获量和兼捕获量相关的值。我想编写代码,在每次访问期间评估每个陷阱行的数据。这是我正在使用的数据示例:
样本数据:
Data <- structure(list(Trap_ID = c(1L, 2L, 1L, 1L, 2L, 3L), Trapline = c("Cemetery",
"Cemetery", "Golf", "Church", "Church", "Church"), Target_Visit_1 = c(0L,
1L, 5L, 0L, 1L, 1L), Bycatch_Visit_1 = c(3L, 2L, 0L, 2L, 1L,
4L), Target_Visit_2 = c(1L, 1L, 2L, 0L, 1L, 0L), Bycatch_Visit_2 = c(4L,
2L, 1L, 0L, 1L, 0L)), class = "data.frame", row.names = c(NA,
-6L))
每个陷阱线的陷阱数量各不相同。我有一个为每个 Trapline 编写的代码(有 14 条不同的 Trapline),但我希望有一种方法可以将它合并到一行代码中,在 Trapline 不变时计算值,然后当它更改为下一个陷阱线,它将开始新的计算。下面是一个示例,说明我如何找到在 Cemetery Trapline 发现的访问 1 的兼捕总和。
CemetaryBycatch1 <- Data %>% select(Bycatch Visit 1 %>% filter(Data$Trapline == "Cemetery")
sum(CemetaryBycatch1)
到目前为止,我为每次访问的每个陷阱线都编写了这样的代码,但是有 14 条陷阱线和 8 次访问,我希望避免编写这么多行代码,并希望有一个使用一段代码循环遍历它的方法,该代码将计算每个陷阱线的值(总和、平均值等)。
谢谢
【问题讨论】:
-
使用
Data %>% group_by(Trapline) %>% ... -
欢迎来到
stackoverflow!如果您还没有这样做,请花一些时间查看要做什么when someone answers your question。访问help center,可以找到有关stackoverflow新用户的更多信息。