Объединение таблиц с разными столбцами

Я хочу объединить тибблы,

  1. мало общих столбцов
  2. несколько столбцов с одинаковым именем, но разными значениями
  3. один другой столбец

Я создал пример ниже, может кто-нибудь создать желаемую таблицу

Спасибо

library(tidyverse)

# common columns in both tibble
x <- c(1, 2, 3)
y <- c(2, 3, 4)

# common column name and different value for each tibble
v <- c(15, 10, 20)
# specific column to tibble
t_a <- c(4, 5, 6)

tbl_a <- tibble(x, y, v, t_a)


# common column name and different value for each tibble
v <- c(7, 11, 13)
# specific column to tibble
t_b<- c(9, 14, 46)

tbl_b <- tibble(x, y, v, t_b)


# concatenate tbl such output looks like this
x <- c(1, 2, 3, 1, 2, 3)
y <- c(2, 3, 4, 2, 3, 4)

v <- c(15, 10, 20, 7, 11, 13)

t <- c(4, 5, 6, 9, 14, 46)

name <- c("a", "a", "a", "b", "b", "b")

# desired output
tbl <- tibble(x, y, v, t, name)

Виноват ! я поправила, спасибо

SiH 18.12.2020 17:26
Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
1
328
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Здесь мы можем связать наборы данных вместе и использовать pivot_longer

library(dplyr)
library(tidyr)
bind_rows(tbl_a, tbl_b) %>% 
  pivot_longer(cols = c(t_a, t_b), names_to = c('.value', 'name'), 
     names_sep = "_", values_to = 't', values_drop_na = TRUE)

-выход

# A tibble: 6 x 5
#     x     y     v name      t
#  <dbl> <dbl> <dbl> <chr> <dbl>
#1     1     2    15 a         4
#2     2     3    10 a         5
#3     3     4    20 a         6
#4     1     2     7 b         9
#5     2     3    11 b        14
#6     3     4    13 b        46

Другие вопросы по теме