【发布时间】:2014-02-18 21:53:51
【问题描述】:
如果我有一个数据框列表
list.dfs <- list(df1 = data.frame(var1 = c(1:3), var2 = c(1:3), var3 = c(1:3)),
df2 = data.frame(var1= c(1:3), var2 = c(1:3), var3 = c(1:3)),
df3 = data.frame(var1= c(1:3), var2 = c(1:3), var3 = c(3:1)))
如何使用lapply 并按var3(从低到高)对列表中的每个数据框进行排序
【问题讨论】:
-
欢迎来到 SO。你试过什么?这是相当直截了当的,就目前而言,听起来您是在要求我们为您编写代码。
-
谢谢!我还不是很好的R,很抱歉这个直截了当的问题。我无法在列表中提取数据框的列以传递给 order 函数
-
我已经尝试过 lapply(list.dfs,order([3],)。抱歉,列表中的 df 让我感到困惑。我知道如何在不使用 lapply 的情况下正常订购它们。例如 list.dfs[[ 3]][order(list.dfs[[3]][3]),]
-
斯文的回答是正确的。要考虑的事情是编写一个在单个数据帧上执行您想要的功能的函数,例如
function(x) x[order(x$var3),]。然后使用lapply将该函数应用到您的列表中。