我试图用最小值替换 Dataframe 中最小值之后的每个值。
例如:我有一个类似下面的dataframe
a<-c(1:6)
b<-c(6, 1:5)
c<-c(5:6, 1:4)
d<-c(4:6, 1:3)
e<-c(3:6, 1:2)
f<-c(2:6, 1)
df<- data.frame(a, b, c, d, e, f)
df
a b c d e f
1 2 3 4 5 6
6 1 2 3 4 5
5 6 1 2 3 4
4 5 6 1 2 3
3 4 5 6 1 2
2 3 4 5 6 1
在这种情况下,我想把出现在1后面的每个值都转换为1。
df
a b c d e f
1 2 3 4 5 6
1 1 2 3 4 5
1 1 1 2 3 4
1 1 1 1 2 3
1 1 1 1 1 2
1 1 1 1 1 1
我本来想通过使用which.min()
找到最小值的位置,然后使用索引,将后面的所有内容替换为min值,但我只知道如何一次对一列执行此操作。我如何同时对 Dataframe 中的每一列执行此操作?
我还需要能够将最小值之前的每个值替换为1,但我认为一旦知道如何进行逆运算,我就可以计算出来。
3条答案
按热度按时间nr9pn0ug1#
使用
lapply
可以做到:lokaqttq2#
我们可以使用
tidyverse
fykwrbwg3#
我们可以使用
max.col
生成掩码矩阵msk