Создайте фрейм данных из разных листов Excel с переменной фактора

#r #factors

#r #факторы

Вопрос:

Извините, если это очень простой вопрос, но я не смог найти ответ на свою проблему.

Я импортировал свои данные из файла excel, содержащего 3 листа, с помощью readxl библиотеки. Итак, у меня в рабочей области есть 3 набора данных, которые я хочу собрать вместе (я сделал это с rbind помощью функции).

Однако мне нужно создать новый переменный коэффициент с 3 уровнями (по одному для каждого листа), чтобы различать их в созданном новом фрейме данных. Как я могу это сделать?

Заранее благодарю вас!

Ответ №1:

Вы можете использовать dplyr::bind_rows указание .id параметра и, возможно, использование именованных аргументов для фреймов входных данных (см. документацию).

Ответ №2:

Создайте переменную в каждом фрейме данных на основе листа, прежде чем привязывать их.

 sheet1$sheet –gt; "S1" sheet2$sheet -gt; "S2" sheet3$sheet -gt; "S3"  

Где у вас будет переменная под названием sheet и столбец с S1, S2, S3 в нем.

Ответ №3:

Вот пример того, как это сделать:

 # the dataframes df1 lt;- mtcars[1:3,1:2] df2 lt;- mtcars[5:10,1:2]  # get all dataframes in your environment in a list df_list lt;- Filter(function(x) is(x, "data.frame"), mget(ls()))  # add an id column to each dataframe in the list df_list lt;- Map(cbind, df_list, unique.id = (1:length(df_list)))  # bind all dataframes to one with the unique id do.call(rbind, df_list)  
 mpg cyl unique.id df1.Mazda RX4 21.0 6 1 df1.Mazda RX4 Wag 21.0 6 1 df1.Datsun 710 22.8 4 1 df2.Hornet Sportabout 18.7 8 2 df2.Valiant 18.1 6 2 df2.Duster 360 14.3 8 2 df2.Merc 240D 24.4 4 2 df2.Merc 230 22.8 4 2 df2.Merc 280 19.2 6 2