У меня есть список из 16 фреймов данных, в которых каждый фрейм данных соответствует отдельному году.Чтобы сохранить порядок, когда я создал эти dfs, я добавил суффикс к каждому столбцу в зависимости от года каждого df (например, поле area в df в 2002 году называется «area_2», а 2003 - «area_3».
Среди столбцов DF есть поле, имеющее два возможных значения (0 или 1, как представление True или False).
Я хочу создать списки подмножеств в зависимости от возможныхполя этих подмножеств, такие как строки каждого df, в которых это поле равно 1, или 0.
Если бы все поля были названы одинаково, я мог бы использовать строку:
subset <- lapply(df.list, function(x) dplyr::filter(x, fieldname == "1"))
Тем не менее, имя поля по-разному именуется в каждом члене списка: «fieldname_2», «fieldname_3» - вплоть до 18 (пропуск 8).
Тогда возникает вопрос:это простой способ выполнить это подмножество в списке, установив функцию для поиска имени поля с шаблоном и изменяющим суффиксом.
фиктивный пример, на котором можно попрактиковаться в фильтрации:
valuesx <- c(1,4,3,1,2,5,6,4)
valuesy <- c(4,3,7,1,8,5,2,1)
column_2 <- c(1,1,1,1,0,0,0,0)
column_3 <- c(1,0,1,1,0,0,1,0)
df1<- data.frame(value = valuesx, column_2 = column_2)
df2<- data.frame(value = valuesy, column_3 = column_3)
list_df <- list(df1, df2)
Желаемый результат: новый список со строками каждого DF, в котором «столбец *» == 1