R 获取三元组数据帧中变量值最低的行
我希望以特定的方式筛选此表,以便对于变量a、B和C的每个三元组值,我得到因子变量D的最低级别。我展示了一个示例:R 获取三元组数据帧中变量值最低的行,r,R,我希望以特定的方式筛选此表,以便对于变量a、B和C的每个三元组值,我得到因子变量D的最低级别。我展示了一个示例: sof7 <- structure(list(A = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "tomato", class = "factor"), B = structure(c(3L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L), .Label = c("m
sof7 <- structure(list(A = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L), .Label = "tomato", class = "factor"), B = structure(c(3L,
3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L), .Label = c("mozzarella",
"salami", "zucchini"), class = "factor"), C = c(2L, 2L, 2L, 2L,
1L, 1L, 1L, 5L, 5L, 5L), D = structure(c(1L, 2L, 3L, 4L, 2L,
3L, 4L, 2L, 3L, 5L), .Label = c("A1", "A2", "A3", "A4", "A5"), class = "factor")), class = "data.frame", row.names = c(NA,
-10L))
在按“a”、“B”分组后,我们可以对数值索引使用
slice
library(dplyr)
sof7 %>%
group_by(A, B) %>%
slice(which.min(C))
# A tibble: 3 x 4
# Groups: A, B [3]
# A B C D
# <fct> <fct> <int> <fct>
#1 tomato mozzarella 1 A2
#2 tomato salami 5 A2
#3 tomato zucchini 2 A1
或者,如果要按“A”、“B”、“C”进行分组,并获得
因子变量“D”的级别最低的行
sof7 %>%
group_by(A, B, C) %>%
slice(which.min(D))
在按“a”、“B”分组后,我们可以对数值索引使用slice
library(dplyr)
sof7 %>%
group_by(A, B) %>%
slice(which.min(C))
# A tibble: 3 x 4
# Groups: A, B [3]
# A B C D
# <fct> <fct> <int> <fct>
#1 tomato mozzarella 1 A2
#2 tomato salami 5 A2
#3 tomato zucchini 2 A1
或者,如果要按“A”、“B”、“C”进行分组,并获得因子变量“D”的级别最低的行
sof7 %>%
group_by(A, B, C) %>%
slice(which.min(D))
我感兴趣的变量是D,这也是数字吗?@mightaskalot。在这里,我们对行进行切片,以便在按“A”、“B”分组后,哪一行是“C”的最小行,它将过滤/切片该行。从你的预期产出来看,我明白了。返回原始数据集的所有列。如果你检查代码,我没有使用D
@mightaskalot你能告诉我你期望的输出是什么吗?非常感谢,这是我第一次看到slice()函数。那是什么意思?我真的不关心变量C,想根据D对每个三元组(A、B、C)进行排序。我不明白。@mightaskalot在你的帖子中说,获取变量D最小的一个。
。我根据这个描述更新了帖子。我感兴趣的变量是D,这也算是数字吗?@mightaskalot。在这里,我们对行进行切片,以便在按“A”、“B”分组后,哪一行是“C”的最小行,它将过滤/切片该行。从你的预期产出来看,我明白了。返回原始数据集的所有列。如果你检查代码,我没有使用D
@mightaskalot你能告诉我你期望的输出是什么吗?非常感谢,这是我第一次看到slice()函数。那是什么意思?我真的不关心变量C,想根据D对每个三元组(A、B、C)进行排序。我不明白。@mightaskalot在你的帖子中说,获取变量D最小的一个。
。我根据这个描述更新了帖子