本文介绍了如何对整体上大于等于0.2的列进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有如下数据框:
df:
Sample Region4 Region1 Region5 Region3 Region2 Type
T1 0 0.289 0.378 0 1 K
T2 0 0.167 0 0.875 0.389 K
T3 0.186 0.12345 0 0 0.187 K
T4 0.11234 0.1789 0 0.457 0.786 L
T5 0.2347 0.2567 0 0 0 L
T6 0.28769 0 0.123 0.1987 0.1565 L
T7 0.142 0 0.1987 0 0 M
T8 0 0.1256 0.123 0.129 0.111 M
T9 0.187 0.987 0 0.237 0.783 M
如何对值> = 0.2的列进行明智排序,不应对值
How to sort the column wise with values >=0.2, sorting should not be applied on values <0.2.
我以这种方式尝试过.但是没用
I tried in this way. But didn't work
sort(apply(df[grepl("Region",length(colnames(df)], 2, function(x)
any(x >= 0.2)),decreasing=TRUE)
推荐答案
我们可以在区域"(Region)列上使用lapply
循环,创建逻辑向量('i1'),使用该逻辑子集对值order
进行子集化并更新
We can loop with lapply
on the 'Region' columns, create logical vector ('i1'), use that to subset the values, order
and update it
nm1 <- grepl("Region",names(df1))
df1[nm1] <- lapply(df1[nm1], function(x) {
i1 <- x >= 0.2
x[i1] <- x[i1][order(x[i1], decreasing = TRUE)]
x})
这篇关于如何对整体上大于等于0.2的列进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!