2015-07-20 23 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

谢谢。有效 –