r - 如何对同一列的数据帧列表中的所有数据帧进行排序?

标签 r sorting dataframe

我有一个数据帧列表dataframes_list。例如,我将dput(dataframes_list)放在底部。我想对列表enrichment上的列表中的所有数据框进行排序。我可以用一个数据框排序

first_dataframe <- dataframes_list[[1]]
sorted_dataframe <- first_dataframe[order(first_dataframe$enrichment),] 

如何为dataframes_list中的每个数据框执行此操作?

示例dataframes_list:
list(structure(list(rank = c(1, 2, 3, 4, 5, 6), cmap.name = c("meclocycline", 
"pimozide", "isocorydine", "alvespimycin", "15-delta prostaglandin J2", 
"naloxone"), mean = c(-0.471, 0.504, -0.49, 0.193, 0.296, -0.383
), n = c(4, 4, 4, 12, 15, 6), enrichment = c(-0.869, 0.855, -0.859, 
0.539, 0.476, -0.694), p = c("0.00058", "0.00058", "0.00068", 
"0.00072", "0.00122", "0.00199"), specificity = c("0", "0.0302", 
"0", "0.069", "0.2961", "0.0155"), percent.non.null = c(100, 
100, 100, 50, 60, 83), signature_name = c("day1_day3__sham3_strict", 
"day1_day3__sham3_strict", "day1_day3__sham3_strict", "day1_day3__sham3_strict", 
"day1_day3__sham3_strict", "day1_day3__sham3_strict")), .Names = c("rank", 
"cmap.name", "mean", "n", "enrichment", "p", "specificity", "percent.non.null", 
"signature_name"), row.names = c(NA, 6L), class = "data.frame"), 
    structure(list(rank = c(1, 2, 3, 4, 5, 6), cmap.name = c("trichostatin A", 
    "daunorubicin", "ketotifen", "quipazine", "minoxidil", "ricinine"
    ), mean = c(-0.319, -0.515, 0.486, 0.476, 0.316, -0.481), 
        n = c(182, 4, 4, 4, 5, 4), enrichment = c(-0.384, -0.883, 
        0.862, 0.861, 0.812, -0.816), p = c("0", "0.00046", "0.0005", 
        "0.0005", "0.00058", "0.00209"), specificity = c("0.3762", 
        "0.0175", "0.0053", "0.0065", "0", "0.006"), percent.non.null = c(56, 
        100, 100, 100, 60, 100), signature_name = c("hour4_day1_day3__sham3_strict", 
        "hour4_day1_day3__sham3_strict", "hour4_day1_day3__sham3_strict", 
        "hour4_day1_day3__sham3_strict", "hour4_day1_day3__sham3_strict", 
        "hour4_day1_day3__sham3_strict")), .Names = c("rank", 
    "cmap.name", "mean", "n", "enrichment", "p", "specificity", 
    "percent.non.null", "signature_name"), row.names = c(NA, 
    6L), class = "data.frame"))

最佳答案

使用lapply:

sorted_dataframes_list <- lapply(dataframes_list, function(df){
                                 df[order(df$enrichment),]
                                 })

关于r - 如何对同一列的数据帧列表中的所有数据帧进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23270117/

相关文章:

java - 在 Java 中对多语言环境字符串进行排序

sorting - Spring Data Rest中关联端点中的排序功能

python - 比较 2 个数据帧并检查 id 列值是否在其他数据帧列中。如果该值存在则更改相应的列

python - 使用 NaN header 重命名 Pandas 数据框

r - 只为一个函数加载依赖

r - 如何使用 ggplot 在 r 中创建堆积条形图

r - Sweave 中是否有相当于\Sexpr{} 的 R Markdown?

css - 找到css用cicerone修改tabPanel的高亮

java - 对已排序的列表进行排序时,列表迭代在 Java 8 中抛出 ConcurrentModificationException

python - 将平均函数应用于具有外部条件的 MultiIndex 数据帧