R: условное слияние данных по ячейкам - PullRequest
1 голос
/ 18 июня 2020

У меня есть фрейм данных df1, в котором есть основная переменная main_v и переменная, в которой иногда есть дополнительный комментарий, additional_v:

df1:
    main_v additional_v
    city1
    city2 200 sq mi
    city3 100 inhabitants
    city2 10 mio inhabitants
    city4
    city1
    city4
    city1 10 sq mi

Я хочу сделать следующее : объединить одинаковые main_v записи всякий раз, когда additional_v пусто, и сохранить одну запись. Если additional_v не пусто, оставьте каждый экземпляр main_v. Отдельные записи additional_v не следует объединять для каждого main_v, а хранить как отдельные записи.

Результирующий df2 должен выглядеть примерно так:

df2:
    main_v   additional_v
        city1
        city1 10 sq mi
        city2 200 sq mi
        city2 10 mio inhabitants
        city3 100 inhabitants
        city4

Я не Я не знаю, как подойти к этой проблеме. Любая помощь будет оценена. Я не предпочитаю конкретный packages.

1 Ответ

1 голос
/ 18 июня 2020

Мы могли бы использовать distinct из dplyr

library(dplyr)
distinct(df1) %>%
    arrange(main_v)

Или с unique из base R

unique(df1)

данных

df1 <- structure(list(main_v = c("city1", "city2", "city3", "city2", 
"city4", "city1", "city4", "city1"), additional_v = c("", "200 sq mi", 
"100 inhabitants", "10 mio inhabitants", "", "", "", "10 sq mi"
)), class = "data.frame", row.names = c(NA, -8L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...