Добавить фрейм данных в конец каждого фрейма данных в списке фреймов данных в r - PullRequest
1 голос
/ 26 февраля 2020

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

library(dplyr)

col_names1 <- as.data.frame(t(as.data.frame(colnames(iris))))
colnames(col_names1) <- unlist(col_names1[1, ])
rownames(col_names1) <-""

iris %>%
  group_split(Species) %>%
  bind_rows(col_names1) #errors out: Error: Column `Sepal.Length` can't be converted from numeric to factor

. список фреймов данных, каждый из которых имеет имена столбцов в виде новой строки внизу каждого фрейма данных в списке.

1 Ответ

1 голос
/ 26 февраля 2020

Одна проблема заключается в разнице типов. Мы можем преобразовать в тот же тип, а затем сделать bind_rows. Кроме того, поскольку мы разбиваемся на list из data.frame, нам нужно l oop над list (map) и применить bind_rows)

library(dplyr)
library(purrr)
iris %>% 
    group_split(Species) %>%
    map(~ bind_rows(.x %>%
                           mutate_all(factor), col_names1))
#[[1]]
# A tibble: 51 x 5
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# * <fct>        <fct>       <fct>        <fct>       <fct>  
# 1 5.1          3.5         1.4          0.2         setosa 
# 2 4.9          3           1.4          0.2         setosa 
# 3 4.7          3.2         1.3          0.2         setosa 
# 4 4.6          3.1         1.5          0.2         setosa 
# 5 5            3.6         1.4          0.2         setosa 
# 6 5.4          3.9         1.7          0.4         setosa 
# 7 4.6          3.4         1.4          0.3         setosa 
# 8 5            3.4         1.5          0.2         setosa 
# 9 4.4          2.9         1.4          0.2         setosa 
#10 4.9          3.1         1.5          0.1         setosa 
# … with 41 more rows

#[[2]]
# A tibble: 51 x 5
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species   
# * <fct>        <fct>       <fct>        <fct>       <fct>     
#...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...