2017-02-23 5 views
1

У меня есть таблица данных с годами и изменениями в этом году. Мне нужен вывод, похожий на этот вид +2005(1)+2004(1), где указано, что значение 2005 и 2004 года является новым, а также что в скобках было только одно новое значение в этом году, чтобы суммировать все на одной строке. Я пробовал sprintf, paste, aggregate, но не повезло. Благодарим Вас за помощьСочетание нескольких столбцов в R

summary.changed 

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

Может быть 'паста (do.call (паста, ДФ), коллапс = '+')' ' – Sotos

+0

пасты (do.call (paste, summary.changed), collapse = '+') 'дает мне вывод ' [1] "2005 1 + 2004 1' спасибо, вы знаете, как получить скобки? –

+0

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

ответ

0

Здесь более воспроизводимым решение с использованием tidyverse пакетов:

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() 
Смежные вопросы