【发布时间】:2021-11-06 03:52:47
【问题描述】:
hy,这是@Sam Dickson 提出的解决方案的更新建议。 谁能帮助创建更接近 [预期输出] 的输出并使用 dplyr 函数来概括解决方案。
data.frame(
RC1=c(0.902,0.9,0.899,0.825,0.802,0.745,0.744,0.74,0.382,0.356,0.309,0.295,0.194,0.162,0.162,0.156,0.153,0.147,0.144,0.142,0.123,0.113,0.098,0.062),
RC2=c(0.206,0.282,0.133,0.057,0.091,0.243,-0.068,0.105,0.143,0.173,0.329,0.683,0.253,0.896,-0.155,-0.126,0.06,-0.158,0.952,0.932,-0.077,-0.062,0.322,-0.065),
RC3=c(0.153,-0.029,0.093,0.138,0.289,0.071,0.413,-0.011,-0.069,0.181,0.123,-0.035,0.807,0.104,-0.044,0.504,0.15,-0.004,-0.013,0.106,0.785,-0.053,0.751,0.858),
RC4=c(0.078,0.05,0.219,0.216,0.218,0.114,0.122,0.249,0.726,0.108,0.725,-0.089,0.249,0.146,0.622,-0.189,0.099,0.406,0.05,0.026,-0.018,-0.095,0.007,-0.118),
RC5=c(0.217,0.021,-0.058,0.166,0.352,0.09,0.26,-0.354,0.065,-0.014,0.064,0.359,0.134,-0.114,0.212,0.178,0.878,0.71,-0.019,-0.021,0.015,-0.055,0.165,-0.074),
RC6=c(0.027,-0.007,0.087,0.104,0.045,0.319,0.296,0.205,0.088,0.816,0.229,0.302,0.163,0.059,-0.256,0.604,-0.07,0.394,-0.02,-0.041,0.071,-0.008,0.219,-0.068),
RC7=c(-0.015,-0.15,0.073,0.126,0.06,0.347,0.082,-0.093,-0.155,0.093,-0.045,-0.175,-0.021,0.004,0.052,-0.184,-0.054,-0.008,0.012,-0.004,0.094,0.951,-0.001,-0.118))->df
row.names(df)<- c("X5","X12","X13","X2","X6","X4","X3","X11","X15","X10","X16","X8","X20","X19","X17","X21","X9","X7","X22","X24","X1","X14","X23","X18")
ord1 <- apply(as.matrix(df),1,function(x) min(which(abs(x)>=0.4),ncol(df)))
ord2 <- df[cbind(1:nrow(df),ord1)]
df[order(ord1,-abs(ord2)),]
df1<-df[ , ]> 0.4
row.names(df1)<- c("X5","X12","X13","X2","X6","X4","X3","X11","X15","X10","X16","X8","X20","X19","X17","X21","X9","X7","X22","X24","X1","X14","X23","X18")
df1
df[df[,]< 0.4] <- ""
df
Output:
RC1 RC2 RC3 RC4 RC5 RC6 RC7
X5 0.902
X12 0.9
X13 0.899
X2 0.825
X6 0.802
X4 0.745
X3 0.744 0.413
X11 0.74
X15 0.726
X10 0.816
X16 0.725
X8 0.683
X20 0.807
X19 0.896
X17 0.622
X21 0.504 0.604
X9 0.878
X7 0.406 0.71
X22 0.952
X24 0.932
X1 0.785
X14 0.951
X23 0.751
X18 0.858
预期输出:
【问题讨论】:
-
到目前为止你有什么?
-
对于 Q1,您所说的“在每一列中从大到小对列进行排序”是什么意思?你的意思是你想对列进行排序 - 哪一列是第一列,哪一列是第二列,等等?还是您的意思是要对行进行排序,使列保持相同的顺序,先 RC1,然后再进行 RC2,等等?
-
您的图像似乎已对行进行了排序。你的代码已经有
dplyr::arrange(-RC1)。这将根据RC1值按降序对行进行排序。您的图像以 大部分 降序显示 RC1 值,但随后出现了奇怪的情况,例如行X14的RC1值远高于其周围的值。也许您想按行的总和进行排序?还是别的什么? -
什么定义了输出中突出显示的单元格?是否突出了某个截止点之上的所有内容?还是突出显示前 10% 的值?还是别的什么?
-
最后,你希望输出是什么?您是否在 RMarkdown 中为 HTML 制作表格?还是字?还是PDF?还是图片?
标签: r sorting filter dplyr output