我正在尝试根据机器(数据帧)的机器得分(列)对它们进行排名,并将它们从最低到最高排序。每台机器都是列表中的一个元素。因此,我有一个281个数据帧的列表,所有这些数据帧都包含一个标题为Machine Score
的列。
我已经尝试过多次编写一个函数,但是总是被列表中元素的实际排序所困扰。
mach1 <- data.frame('A' = 1:3, 'B' = 1:3, 'C' = .5)
mach2 <- data.frame('A' = 1:4, 'B' = 2:5, 'C' = .2)
mach3 <- data.frame('A' = 1, 'B' = 2, 'C' = .9)
list <- list(mach1,mach2,mach3)
我想做的是对列表元素进行排序,以便它们按以下顺序显示:
list(mach2,mach1,mach3)
因此,列C中具有最低值的数据框会首先出现,依此类推。
答案 0 :(得分:0)
R的基本选项是从min
和list
中提取order
值
out <- list[order( sapply(list, function(x) min(x$C)))]
out
#[[1]]
# A B C
#1 1 2 0.2
#2 2 3 0.2
#3 3 4 0.2
#4 4 5 0.2
#[[2]]
# A B C
#1 1 1 0.5
#2 2 2 0.5
#3 3 3 0.5
#[[3]]
# A B C
#1 1 2 0.9
注意:list
是一个函数,因此最好不要使用函数名来命名标识符对象