2015-04-18 22 views
4

這看起來很簡單,但無論使用哪一種*應用函數,都無法正確回答。我沒有嘗試任何其他包,因爲它似乎*申請應該一定能夠做到這一點。將粘貼到矢量列表上以獲取字符串列表

我的數據:

data = list(foo=c("first", "m", "last"), bar=c("first", "m", "last")) 

我真的覺得應該工作:

lapply(data, FUN=paste) 

但它給我:

$foo 
[1] "first" "m"  "last" 

$bar 
[1] "first" "m"  "last" 

我想:

$foo 
[1] "first m last" 
$bar 
[1] "first m last" 

當然,我試過其他的東西整體轉換:

> paste(data) 
[1] "c(\"first\", \"m\", \"last\")" "c(\"first\", \"m\", \"last\")" 
> paste(data, collapse = "") 
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")" 
> paste(data, sep = "") 
[1] "c(\"first\", \"m\", \"last\")" "c(\"first\", \"m\", \"last\")" 
> paste(data, collapse = "", sep="") 
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")" 
> paste(as.vector(data), collapse = "", sep="") 
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")" 
> paste(c(data), collapse = "", sep="") 
[1] "c(\"first\", \"m\", \"last\")c(\"first\", \"m\", \"last\")" 
> paste(c(data, recursive = T), collapse = "", sep="") 
[1] "firstmlastfirstmlast" 

我不明白的地方這引述「C」無稽之談的來源。

+0

'lapply(數據,粘貼,崩潰=「「) ' –

+0

呃,它的工作原理。作爲回答發佈? –

回答

6

您最初的做法幾乎是正確的,你只需要以串聯的向量成一個字符串列表中的每個元素添加collapse = " "

lapply(data, paste, collapse = " ") 
# $foo 
# [1] "first m last" 
# 
# $bar 
# [1] "first m last"