Не поймите меня неправильно, я люблю аккуратный способ делать вещи так же, как все здесь, и многие люди изучают R программирование, идя по более легкому пути благодаря этому, но я иногда думаю , когда у вас естьУ молотка все выглядит как гвоздь .
У Tidyverse есть много достоинств, но есть и недостатки, один из которых, кажется, маскирует / скрывает основы языка R. В этом случае самое мощное и «читаемое человеком» решение (imho) - это смешивание подходов в удобочитаемом виде.
Давайте посмотрим.Сначала мы избавляемся от вложенных списков, преобразуя их во фрейм данных:
df$column2 <- data.frame(matrix(unlist(df$column2), nrow=nrow(df), byrow=T))
> df
column1 column2.X1 column2.X2 column2.X3 column3
1 HEATER 1 00 01 88
2 COOLER 1 01 01 31
Затем извлекаем внутренний фрейм данных (колонка2) и помещаем его рядом с оригинальным df:
df <- cbind(select(df,-column2), df$column2)
Выбор / переименование столбцов является тривиальной задачей.Вот пример после привязки:
df <- cbind(df, df$column2) %>%
select(Column1=1, Column2=4, Column3=5, Column4=6, Column5=3)
Это дает нам желаемый результат:
> df
Column1 Column2 Column3 Column4 Column5
1 HEATER 1 00 01 88
2 COOLER 1 01 01 31
Погружение в аккуратный код иногда заканчивается не таким уж чистым решением.Я знаю, что многие люди изучают R таким образом, но мудрым программистам следует опасаться темных мест, к которым это может привести, если вы спешите к переходу на другую сторону для каждой проблемы, не учитывающей базу R.