2012-11-28 154 views
5

說我有這個數據裏面,加入/合併兩列數據幀

(df <- data.frame(col1 = c('My','Your','His','Thir'), col2 = c('Cat','Dog','Fish','Dog'))) 

    col1 col2 
1 My Cat 
2 Your Dog 
3 His Fish 
4 Thir Dog 

,我想列組合在一起這樣

`some magic` 

    col1 col2  col3 
1 My Cat My Cat 
2 Your Dog Your Dog 
3 His Fish His Fish 
4 Thir Dog Thir Dog 

我該怎麼辦?甚至用逗號(,)這樣,

`some magic` 

    col1 col2  col3 
1 My Cat My, Cat 
2 Your Dog Your, Dog 
3 His Fish His, Fish 
4 Thir Dog Thir, Dog 

回答

7

df$col3 <- paste(df$col1, df$col2, sep=",")。您也可以使用sprintfpaste0函數。

df$col3 <- paste(df$col1, df$col2, sep=",") # comma separator 
df$col3 <- paste0(df$col1, df$col2) # for no separator 
+0

一個簡單的包裝親愛的Erik Shilts,工作就像一個魅力。謝謝! –

+0

如果我們正在處理空值,該怎麼辦?我們如何處理額外的逗號 – Saksham

+0

我仍在等待您的回覆。假設數據是'col1'爲空,'col2'爲cat。結果值不會是',貓'。如何處理?我只需要'貓'。如果我們玩多列,結果甚至可能是',,貓,,狗' – Saksham

2

如果你想給他們留下的兩個列表,(不是字符串串聯兩個),那麼下面的工作以及

within(df, col3 <- Map(list, as.character(col1),as.character(col2))) 

    col1 col2  col3 
1 My Cat My, Cat 
2 Your Dog Your, Dog 
3 His Fish His, Fish 
4 Thir Dog Thir, Dog 

Mapmapply(..., SIMPLIFY = FALSE)

+0

謝謝,這看起來很有趣。我稍後會玩弄它。 –

+0

如果我們也在處理空值,該怎麼辦?我們如何處理額外的逗號 – Saksham

+0

我仍在等待您的回覆。假設數據是'col1'爲空,'col2'爲cat。結果值不會是',貓'。如何處理?我只需要'貓'。如果我們玩多列,結果甚至可能是',,貓,,狗' – Saksham