Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 获取三元组数据帧中变量值最低的行_R - Fatal编程技术网

R 获取三元组数据帧中变量值最低的行

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

我希望以特定的方式筛选此表,以便对于变量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("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最小的一个。
。我根据这个描述更新了帖子