如何对列表中的多个数据框的列进行排序?

时间:2021-07-09 12:10:24

标签: r list dataframe time timestamp

我在 R 中有一个列表,其中有几个数据帧以时间戳作为一列。我想对所有这些列进行排序。我该怎么做?

2 个答案:

答案 0 :(得分:1)

在基础 R

L <- list(data.frame(v1 = 3:1, v2 = 1:3), 
          data.frame(v1 = 6:4, v2 = 4:6))
# [[1]]
#   v1 v2
# 1  3  1
# 2  2  2
# 3  1  3
# 
# [[2]]
#   v1 v2
# 1  6  4
# 2  5  5
# 3  4  6

lapply(L, function(x) x[order(x$v1), ])
# [[1]]
#   v1 v2
# 3  1  3
# 2  2  2
# 1  3  1
# 
# [[2]]
#   v1 v2
# 3  4  6
# 2  5  5
# 1  6  4

答案 1 :(得分:1)

使用 tidyverse - 使用 list(来自 map)和 purrr 基于“时间戳”列的行循环遍历 arrange

library(purrr)
library(dplyr)
lst2 <- map(lst1, ~ .x %>%
                    arrange(timestamp))