首页 > 解决方案 > R:将一列的行附加到相邻列

问题描述

我想将同一数据框中的两列的行绑定在一起。我目前通过将它们合并和拆分来做到这一点。有没有更简洁的方法来做到这一点?

在此处输入图像描述

在此处输入图像描述

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

标签: rdplyrtidyversetidyr

解决方案


使用 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)

推荐阅读