說我有兩個向量。使用有條件地從其他向量生成的值生成矢量
a <- c(1,5)
b <- c(2,3,4,6)
我想創建從該兩個矢量的矢量,使得在新向量位置「a」爲紅色和「b」是藍色的,導致
c <- c('red','blue','blue','blue','red','blue')
我認爲可能是使用代表將有所幫助,但例如某種基於a
和b
的代表中的ifelse?
說我有兩個向量。使用有條件地從其他向量生成的值生成矢量
a <- c(1,5)
b <- c(2,3,4,6)
我想創建從該兩個矢量的矢量,使得在新向量位置「a」爲紅色和「b」是藍色的,導致
c <- c('red','blue','blue','blue','red','blue')
我認爲可能是使用代表將有所幫助,但例如某種基於a
和b
的代表中的ifelse?
如何
cols <- rep(NA,length(a)+length(b))
cols[a] <- "red"
cols[b] <- "blue"
cols
# [1] "red" "blue" "blue" "blue" "red" "blue"
這裏是stack
一個選項。獲取在list
的vector
對象與mget
,stack
創建data.frame
,transform
的「IND」列factor
與labels
爲「紅」,「藍」,得到order
後的「IND」荷蘭國際集團的「價值」。
d1 <- transform(stack(mget(c('a', 'b'))), ind = factor(ind, labels = c('red', 'blue')))
as.character(d1$ind[order(d1$values)])
#[1] "red" "blue" "blue" "blue" "red" "blue"
作爲@Frank所述,用這種方法,2層以上的載體可sort
編出
值得注意的是:這是迄今爲止發佈的唯一途徑,將完全擴展到更多的媒介(超出了兩個,a和b)。 – Frank
也許更通用的解決方案相比@MattTyers整齊之一:
cols <- sort(c(a,b))
cols[cols %in% a] <- "red"
cols[cols %in% b] <- "blue"
cols
# [1] "red" "blue" "blue" "blue" "red" "blue"
輝煌!我正在努力想出這一個。謝謝。 – Ahdee