У меня есть список данных из 1: 323, которые являются mrns [[1]]: mrns [[323]], и каждый dataframe имеет столбец, называемый ar .cat ", который классифицирует непрерывные данные из другого столбца ar.value.Сортировка всех фреймов данных по одному столбцу внутри каждого кадра данных в R
> dput(head(mrns[[1]]))
ar.value = c(32.8, 32.8, 32.8,
32.8, 32.8, 32.8), ar.cat = c("HIGH", "HIGH", "HIGH", "HIGH",
"HIGH", "HIGH")),
> dput(head(mrns[[2]]))
ar.value = c(2.7, 2.7, 2.7, 2.7, 2.7,
2.7), ar.cat = c("LOW", "LOW", "LOW", "LOW", "LOW", "LOW"
)),
«ar.cat» имеет значения низкого, среднего и высокого уровня. Каждый файл данных имеет одинаковое значение «ar.cat» для всех строк блока данных. Таким образом, для каждой строки в dataframe 1 она будет иметь «высокое» значение, то для каждой строки в dataframe 2 она будет иметь «низкое» значение и т. Д.
Я пытаюсь заказать все 323 фрейма данных столбец «ar.cat», так что первое, однако, много данных (1: 105) имеет значения «высокий», следующий (106: 207) имеет значение «низкий», затем следующий (208: 323)) имеют значение «средний». Я предполагаю, что алфавитный порядок будет проще всего.
То, что я до сих пор является следующим:
sortCat <- function(df) {
sort(df$ar.cat)
return(df)
}
sorted <- lapply(mrns, sortCat)
Но что прикажет каждый столбец «ar.cat» в пределах каждого dataframe, а не между всем dataframes.
Есть ли у кого-нибудь предложения?
Я был бы соблазн добавить 'df_index' к каждому кадру данных ('mrns [[1]]' имеет 'df_index = 1',' mrns [[2]] = df_index = 2' и т. д.), а затем связывать все фреймы данных вместе; сортировать их как один фрейм данных, а затем, если структура списка важна, «разбить» их обратно в список. – Benjamin