2017-02-23 3 views
1

Ich habe eine data.table mit den Jahren und dem N von Änderungen in diesem Jahr. Ich brauche eine Ausgabe wie diese +2005(1)+2004(1) wo zeigen, dass die Werte 2005 und 2004 neu sind und dass es nur einen neuen Wert für dieses Jahr in Klammern gab, um alles in einer Zeile zusammenzufassen. Ich habe versucht sprintf, paste, aggregate aber kein Glück. Vielen Dank fürKombinieren mehrerer Spalten in R

helfen
summary.changed 

    Jahr N 
1: 2005 1 
2: 2004 1 
+0

Vielleicht 'Paste (do.call (Paste, df), Kollaps = '+')' ' – Sotos

+0

Paste (do.call (paste, summary.changed), collapse = '+') 'gibt mir die Ausgabe ' [1] "2005 1 + 2004 1' danke, weißt du, wie man die Klammern bekommt? –

+0

' paste (paste0 (df $ Jahr, '(', df $ N, ')'), Kollaps = '+') ' – Sotos

Antwort

0

Hier wird eine reproduzierbare Lösung mit tidyverse Paketen:

library(tidyverse) 

# original data frame 
summary.changed <- data_frame(Jahr = 2005:2004, N = 1) 

# transform data frame 
summary.changed2 <- summary.changed %>% 
    unite(col = Jahr_N, Jahr, N, sep = "(") %>% 
    mutate(Jahr_N = gsub(pattern = "^", replacement = "\\+", x = Jahr_N)) %>% 
    mutate(Jahr_N = gsub(pattern = "$", replacement = "\\)", x = Jahr_N)) 

# flatten and print 
summary.changed2 %>% flatten_chr() %>% print() 
Verwandte Themen