van*_*eri 0 sorting r dataframe
a = data.frame(x = c("fl", "kl", "po", "rt", "st"), a = runif(5), b = runif(5), c = runif(5), stringsAsFactors=FALSE)
reference = c("po", "rt", "fl", "st", "kl")
Run Code Online (Sandbox Code Playgroud)
有data.frame a,它应该x根据reference向量排序.我该怎么做?
用途match:
match(reference, a$x)
#[1] 3 4 1 5 2
a[match(reference, a$x),]
# x a b c
#3 po 0.11479400 0.85043472 0.1972569
#4 rt 0.04886256 0.04916686 0.8341600
#1 fl 0.57528688 0.31122035 0.1204271
#5 st 0.77224495 0.29492122 0.9136916
#2 kl 0.67683487 0.87516455 0.9612954
Run Code Online (Sandbox Code Playgroud)
解决data.frame中重复值问题的解决方案(尽管一个示例应该代表问题):
a = data.frame(x = c("fl", "kl", "po", "rt", "st", "st"), a = runif(6),
b = runif(6), c = runif(6), stringsAsFactors=FALSE)
a[order(factor(a$x, levels = reference)),]
# x a b c
#3 po 0.43392816 0.0008970879 0.7282965
#4 rt 0.74484047 0.4237432110 0.3593475
#1 fl 0.69747570 0.0441067580 0.1477714
#5 st 0.18866673 0.3650689835 0.4940101
#6 st 0.93842498 0.4953243888 0.4318899
#2 kl 0.09158319 0.6171634013 0.8798650
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |