Замена значения NA наблюдений в столбце указанной строкой c - PullRequest
0 голосов
/ 14 февраля 2020

Это должно быть относительно просто, но я новичок в R и Tidyverse. У меня есть датафрейм, который является результатом 5 (!) Объединенных csvs, который выглядит следующим образом:

Current result

Я хочу объединить данные только четыре строки, которые будут выглядеть так:

Desired Final Result

Не могли бы вы помочь мне создать оператор if else для заполнения NA в столбцах? Например,

Если значение столбца «Division» для наблюдения = 1, напишите значение «DivisionName» как «Новая Англия». По сути, я хочу объединить Division (число) с "DivisionName" и RegionNumber с "RegionName", чтобы очистить данные. Любые идеи будут оценены. Я считаю, что это можно сделать с помощью dplyr, возможно, с transmute и bindrows. Спасибо за помощь тому, кто учится объединять и переименовывать несколько CSV. Вот код, который я сейчас имею:

library(tidyverse)
DS1 <- read.csv("./datafiles/Division_State-I.csv")
DS2 <- read.csv("./datafiles/Division_State-II.csv")
DS3 <- read.csv("./datafiles/Division_State-III.csv")
RD <- read.csv("./datafiles/Region_Division.csv")
Region <-read.csv("./datafiles/Region.csv")

DS123 <- bind_rows(DS1,DS2,DS3,RD,Region)
uniqueDS123 <- unique(DS123) %>%
  rename("Division"="DivisionNumber", "FIPS"="StateFIPS", "State"="StateName")

1 Ответ

1 голос
/ 14 февраля 2020

Вы можете использовать unite для объединения столбцов.

library(tidyr)

uniqueDS123 %>%
  unite(Division, Division, DivisionName, sep = "-", na.rm = TRUE) %>%
  unite(Region, RegionNumber, RegionName, sep = "-", na.rm = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...