Используя Dplyr, заполните пустые ячейки, используя соответствующие значения в другом столбце. - PullRequest
0 голосов
/ 02 июля 2018

кадр данных:

a = c("a", "", "c", "", "e")
b = c(1, 2, 3, 4, 5)
c = c("g", "h", "i", "j", "k")

df = data.frame(a,b,c)

Как мне заполнить столбец "a" соответствующими значениями в столбце "c", когда "a" пусто с помощью dplyr. Я знаю, как это сделать, используя data.table.

Спасибо.

1 Ответ

0 голосов
/ 03 июля 2018

Это можно сделать с помощью mutate и ifelse. Обратите внимание, что я добавил stringsAsFactors = FALSE, чтобы избежать создания столбцов факторов при создании фрейма данных, поскольку в этом случае проще работать с символами.

a <- c("a", "", "c", "", "e")
b <- c(1, 2, 3, 4, 5)
c <- c("g", "h", "i", "j", "k")

df <- data.frame(a,b,c, stringsAsFactors = FALSE)

library(dplyr)

df2 <- df %>% mutate(a = ifelse(a %in% "", c, a))
df2
#   a b c
# 1 a 1 g
# 2 h 2 h
# 3 c 3 i
# 4 j 4 j
# 5 e 5 k
...