【问题标题】:Order a data frame in a list对列表中的数据框进行排序
【发布时间】: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 将该函数应用到您的列表中。

标签: r list dataframe lapply


【解决方案1】:
lapply(list.dfs, function(x) x[order(x$var3), ])

会成功的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2022-12-18
    • 2010-11-20
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多