У меня есть фрейм данных, который структурирован следующим образом: dput
:
structure(list(railroad = c("bnsf railway company", "bnsf railway company",
"bnsf railway company", "bnsf railway company", "bnsf railway company",
"bnsf railway company", "bnsf railway company", "bnsf railway company",
"union pacific railroad", "union pacific railroad", "union pacific railroad",
"union pacific railroad", "union pacific railroad", "union pacific railroad",
"union pacific railroad", "union pacific railroad"), measure =
c("cars.owned.by",
"cars.owned.by", "cars.type", "cars.type", "cars.type", "train.speed",
"train.speed", "terminal.dwell", "cars.owned.by", "cars.owned.by",
"cars.type", "cars.type", "cars.type", "train.speed", "train.speed",
"terminal.dwell"), category = c("system", "private", "box", "intermodal",
"total", "intermodal", "all.trains", "entire.railroad", "system",
"private", "box", "intermodal", "total", "intermodal", "all.trains",
"entire.railroad"), irm = c(201510L, 201510L, 201510L, 201510L,
201510L, 201510L, 201510L, 201510L, 201510L, 201510L, 201510L,
201510L, 201510L, 201510L, 201510L, 201510L), mean = c(66623,
149937.333, 11395, 16499, 236866, 33.3, 24.5, 25.267, 57618.333,
195764.667, 22229.333, 14135.333, 293164.333, 31.933, 26.6, 27.6
)), row.names = c(1L, 3L, 6L, 9L, 14L, 15L, 20L, 32L, 127L, 129L,
132L, 135L, 140L, 141L, 146L, 160L), class = "data.frame")
Я хотел бы сделать следующее:
Создание отдельных фреймов данных для каждой комбинации measure
и category
,
именуется вставкой measure
и category
, разделенных "."
. Таким образом, первый кадр данных будет называться cars.owned.by.system
и т. Д.
Переименуйте пятый столбец, mean
каждого фрейма данных, в имя самого фрейма данных. Итак, для первого кадра данных это будет colnames(df)[5] <- cars.owned.by.system
.
Желаемый вывод - 8 отдельных фреймов данных, названных как я уже говорил выше
Я попробовал следующее:
cars.owned.by.system <- df[df$category == "system",]
colnames(cars.owned.by.system)[5[ <- cars.owned.by.system
И это делает свою работу, но я не хочу делать это постоянно. Я полагаю, что существует вариант канонического подхода «разделяй и применяй», который бы работал. Любой совет или помощь будет высоко ценится. Благодарю.