【发布时间】:2021-07-23 03:07:02
【问题描述】:
我有一个数据框:
table = structure(list(Plot = 1:10, Sp1 = c(0L, 0L, 1L, 1L, 0L, 1L, 0L,
0L, 1L, 0L), Sp2 = c(1L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L),
Sp3 = c(1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 0L), Sp4 = c(0L,
1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L, 0L)), class = "data.frame", row.names = c(NA,
-10L))
0 表示地块中不存在物种 (Sp)。 1 表示存在一个物种。
首先,我想对我的数据框进行子集化,以便只保留带有 Sp1 或 Sp3 或 Sp4 的图。这可以通过来自dplyr 的filter 轻松完成:
reduced_table <- table %>% filter(table$Sp1 == 1 |table$Sp3 == 1 | table$Sp4 == 1)
但是,如果我想减少表格,以便只存在具有其中两个物种的任意组合的地块,该怎么办。例如,Sp1 和 Sp3、Sp1 和 Sp4、Sp3 和 Sp4 的图将保留。
这可以像使用filter 一样雄辩地完成吗?我的真实情况有更多的物种,因此有更多的组合,所以明确写出组合并不理想。
【问题讨论】:
-
注意:在 dplyr 函数中,您不需要
data$
标签: dplyr r filter dplyr subset