排名函数将 0 排名为 0,将函数应用于具有特定值的向量元素?
Rank function to rank 0 as 0, apply a function to elements of vector with certain values?
我想用 rank() 函数对向量进行排名。
但是,我需要值 =0 到 return 的排名 =0,然后对于具有最低值的元素,排名继续为 1...
示例:
a<-c(0, 0:5, 0)
rank(a, ties.method="first")
(不需要的)输出:
[1] 1 2 4 5 6 7 3
所需的输出如下所示:
[1] 0 0 1 2 3 4 5 0
我想这个解决方案看起来像是将排名函数仅应用于 vector(a) 的元素(不)具有值 0
我们可以rank
排除0值的元素,并用新的rank
向量替换向量中相应元素中的值。
a1 <- a
a1[a1!=0] <- rank(a1[a1!=0])
a1
或者我们可以通过 replace
.
一步完成
replace(a, a!=0, rank(a[a!=0]))
我想用 rank() 函数对向量进行排名。 但是,我需要值 =0 到 return 的排名 =0,然后对于具有最低值的元素,排名继续为 1...
示例:
a<-c(0, 0:5, 0)
rank(a, ties.method="first")
(不需要的)输出:
[1] 1 2 4 5 6 7 3
所需的输出如下所示:
[1] 0 0 1 2 3 4 5 0
我想这个解决方案看起来像是将排名函数仅应用于 vector(a) 的元素(不)具有值 0
我们可以rank
排除0值的元素,并用新的rank
向量替换向量中相应元素中的值。
a1 <- a
a1[a1!=0] <- rank(a1[a1!=0])
a1
或者我们可以通过 replace
.
replace(a, a!=0, rank(a[a!=0]))