我的数据框如下:
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
如何使用值&gt; = 0.2对列进行排序,不应对值<0.2进行排序。
我试过这种方式。但是没有工作
sort(apply(df[grepl("Region",length(colnames(df)], 2, function(x)
any(x >= 0.2)),decreasing=TRUE)
答案 0 :(得分:2)
我们可以在&#39;地区&#39;上使用lapply
循环播放列,创建逻辑向量(&#39; i1&#39;),使用它来对值进行子集化order
并更新它
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})