2017-10-19 53 views
3

排序的Vector我有一個這樣的載體 -由升序

MyVector <- c("2:3", "11:6", "9:10") 

我要調用此爲X:Y。我想按升序對x的值進行排序。

所以我排序的載體需要的樣子,

"2:3", "9:10", "11:6" 

和排序後,我想輸出Y的值在不同的載體

FinalVector看起來像:

"3", "10", "6" 
+0

如果您在向量中存儲的數據是數字的事實,那麼我強烈建議使用列表來存儲所述向量,而不是將其存儲在字符中。 –

+3

'gsub(「。*:」,「」,MyVector [order(as.numeric(gsub(「:。*」,「」,MyVector)))])' – PoGibas

回答

4
MyVector <- c("2:3", "11:6", "9:10") 
gsub(".*:", "", MyVector[order(as.numeric(gsub(":.*", "", MyVector)))]) 
[1] "3" "10" "6" 

說明:

  • gsub(":.*", "", MyVector) - :之前提取部分(例如,2119
  • 把它們變成數字,並得到他們的訂單在原有的向量從原來的矢量
  • 提取值按指定順序
  • gsub(".*:", "" ...) - 前:
+0

工作正常。非常感謝。 – Sid29

2

刪除部分你也可以這樣做:

a <- as.numeric(unlist(strsplit(MyVector, ":"))) 
a[c(FALSE, TRUE)][order(a[c(TRUE, FALSE)])] 

#[1] 3 10 6