объединение двух строк данных в одной строке данных с одинаковым размером строки с использованием R - PullRequest
0 голосов
/ 03 апреля 2020

Я относительно новый R, и у меня есть два кадра данных, например:

#view(df1) (10x1) dataframe
# A
# NA
# C
# NA
# E
# NA
# G
# NA
# I
# NA
#view(df2) (10x1) dataframe
# B
# NA
# D
# NA
# F
# NA
# H
# NA
# J
# NA

Я бы хотел, чтобы мой вывод в R был следующим:

#output

#view(df1) (10x1) dataframe

# A
# B
# C
# D
# E
# F
# G
# H
# I
# J

Я пытался использовать rbind но, похоже, чтобы увеличить размер строки, я хотел бы сохранить размер строки согласованным. Я также пытался использовать слияние, но не получается получить правильный вывод

dput:

df1:

structure(list(A = c("A", NA, "C", NA, "E", NA, "G", NA, "I")), class = "data.frame", row.names = c(NA, 
-9L))

df2:

structure(list(B = c("B", NA, "D", NA, "F", NA, "H", NA, "J")), class = "data.frame", row.names = c(NA, 
-9L))

1 Ответ

0 голосов
/ 03 апреля 2020

Это мое не элегантное решение:

Поскольку ваши строки выровнены и не в шахматном порядке, вам необходимо добавить несколько строк NA в свои фреймы данных:

library(dplyr)

# Add NA row to the end of df1
df1[nrow(df1)+1,] <- NA

# Add NA row to the beginning of df2
df2 <- rbind(c(NA),df2)

# Merge them with `coalesce`
df3 <- data.frame(coalesce(df1$A,df2$B))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...