используя данные ОП, ответ будет

ю что естьмного связанные вопросы здесь, на SO, но я ищу решение мурлыкания, пожалуйста, не одно из списка примененных функций или cbind / rbdind (я хочу воспользоваться этой возможностью, чтобы лучше узнать мурлыканье).

У меня есть список фреймов данных, и я хотел бы добавить новый столбец для каждого фрейма данных в списке. Значением столбца будет имя кадра данных, т. Е. Имя каждого элемента в списке.

Есть нечто подобноеВот, но это включает в себя использование функции иmutate_each()тогда как мне нужно простоmutate().

Чтобы дать вам представление о списке (называетсяcomentarios), вот первая строкаstr() по первому элементу:

> str(comentarios[1])
List of 1
 $ 166860353356903_661400323902901:'data.frame':    13 obs. of  7 variables:

Поэтому я хотел бы, чтобы моя новая переменная содержала166860353356903_661400323902901 для 13 строк в результате, в качестве идентификатора для каждого кадра данных.

Что я пытаюсь это:

dff <- map_df(comentarios, 
              ~ mutate(ID = names(comentarios)),
              .id = "Group"
              )

Тем не мение,mutate() Для работы нужно имя датафрейма:

Error in mutate_(.data, .dots = lazyeval::lazy_dots(...)) : 
  argument ".data" is missing, with no default

Не имеет смысла вводить каждое имя, я бы заблудился на территории цикла и потерял бы преимущества мурлыкания (и R, в более общем смысле). Если бы список был меньше, я бы использовалreshape::merge_all(), но в нем более 2000 элементов. Заранее благодарю за любую помощь.

редактировать: некоторые данные, чтобы сделать проблему воспроизводимой, в соответствии с комментариями Алистер

# install.packages("tidyverse")
library(tidyverse)
df <- data_frame(one = rep("hey", 10), two = seq(1:10), etc = "etc")

list_df <- list(df, df, df, df, df)
names(list_df) <- c("first", "second", "third", "fourth", "fifth")
dfs <- map_df(list_df, 
              ~ mutate(id = names(list_df)),
              .id = "Group"
              )

Ответы на вопрос(2)

Ваш ответ на вопрос