2013-11-15 65 views
2

所以我剛開始使用R,我必須時不時掙扎。 我有刺激的名稱,如這個載體:如何從R中的現有向量(字符)創建兩個向量?

1. abc1.jpg 
2. abc2.jpg 
3. bcd1.jpg 
4. bcd2.jpg 
5. cde1.jpg 
6. cde2.jpg 

現在的第一個條目對應於圖片左邊,在右邊的第二位。我想創建兩個名爲「左」和「右」的向量,其中「左」向量由條目1,3,5,7,9 ...組成(直到300),右邊總是(2,4,6 ...)

我該怎麼做? 在此先感謝!

+0

嘗試'stringr'中的'str_split'。 –

+0

或者'strsplit'! – Justin

+1

如果'vec'是你的矢量,你也可以這樣做: 'lft <-vec [seq(1,length(vec),2)]'和 '' - vec [seq(2,length ),2)]' – Ben

回答

2
vec <- 1:10 # an example vector with the numbers from 1 to 10 

vec[c(TRUE, FALSE)] 
# [1] 1 3 5 7 9 

vec[c(FALSE, TRUE)] 
# [1] 2 4 6 8 10 

短索引向量,例如,c(TRUE, FALSE)被再循環直至其長度的矢量vec的長度相匹配。

+0

非常好。我只是用'vec < - letters [1:10]'試了一下',它也起作用了。 –

+0

作品,謝謝! – roscoe1895

1
x <- c('a','b','c','d','e','f','g','h') 

x.odd <- x[(1:length(x) %% 2)==1] ; x.odd 
#[1] "a" "c" "e" "g" 

x.even <- x[(1:length(x) %% 2)==0] ; x.even 
#[1] "b" "d" "f" "h" 
+0

這也適用,非常感謝:) – roscoe1895