R: добавить строки одного столбца в соседний столбец - PullRequest
0 голосов
/ 02 мая 2019

Я хочу связать строки двух столбцов в одном фрейме данных вместе.В настоящее время я делаю это, объединяя их и разделяя их.Есть ли более сжатый способ сделать это?

enter image description here

enter image description here

library(tidyverse)
library(splitstackshape)

Citrus_1 <- c("Lemon", "Lime", "Orange")
Citrus_2 <- c("Grapefruit", NA, NA) 
Fruit_List <- data.frame(Citrus_1, Citrus_2)

Fruit_List %>%
  unite(Citrus_List, c("Citrus_1", "Citrus_2"), sep = ",") %>%
  cSplit(., "Citrus_List", sep = ",", direction = "long") %>%
  filter(!is.na(Citrus_List))

РЕДАКТИРОВАТЬ: Плохой выбор имени столбца.Обновлено до Citrus_List

Ответы [ 2 ]

2 голосов
/ 02 мая 2019

Использование подхода Tidyverse:

Ваши данные:

Citrus_1 <- c("Lemon", "Lime", "Orange")
Citrus_2 <- c("Grapefruit", NA, NA) 
Fruit_List <- data.frame(Citrus_1, Citrus_2)

Список как фрейм данных только с колонкой:

Fruit_List %>% 
        gather("Citrus_1", "Citrus_2", key = "Fruit_var",value = "Citrus_List",na.rm = TRUE) %>% 
        select(Citrus_List)
1 голос
/ 02 мая 2019

Мы можем использовать base R, чтобы сделать это. unlist 'Fruit_List', удалите NA (na.omit) и создайте data.frame

data.frame(Fruit_list = na.omit(unlist(Fruit_List, use.names = FALSE)))
#  Fruit_list
#1      Lemon
#2       Lime
#3     Orange
#4 Grapefruit
...