2015-07-20 22 views
2
a <- c("abc","efg","hij","klm","nop","qrs") 

我想摺疊基於備用分隔符(,)的字符串。即。如何摺疊基於r中備用分隔符的字符串

"abcefg" "hijklm" "nopqrs" 
+4

目前尚不清楚你期望的輸出是什麼。你可能需要'粘貼(a,collapse =「,」)'描述和標題很混亂。 – akrun

+0

如果我粘貼(a,collapse =「,」)。我會得到像這樣的「abc」「efg」「hij」「klm」「nop」「qrs」。而我想我的結果是這樣的「abcefg」「hijklm」「nopqrs」。我想基於替代分隔符摺疊 –

+0

請在您的文章上更新 – akrun

回答

3

我們可以使用c(TRUE, FALSE)提取「a」和paste基於c(FALSE, TRUE)提取的元素的交替的元件。通過使用c(TRUE, FALSE)/c(FALSE, TRUE),這將提取基於回收的元素。

paste0(a[c(TRUE, FALSE)], a[c(FALSE, TRUE)]) 
    #[1] "abcefg" "hijklm" "nopqrs" 

或者

sprintf('%s%s', a[c(TRUE, FALSE)], a[c(FALSE, TRUE)]) 
    #[1] "abcefg" "hijklm" "nopqrs" 

稍微更有效的方法將是

indx1 <- seq(1, length(a), 2) 
    indx2 <- seq(2, length(a), 2) 
    sprintf('%s%s', a[indx1], a[indx2]) 
    #[1] "abcefg" "hijklm" "nopqrs" 
+0

謝謝。有效 –