#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