Закажите каждый столбец фрейма данных и распечатайте в файл .csv - PullRequest
0 голосов
/ 28 мая 2020

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

Например

> mtcars$car <- rownames(mtcars)
> head(mtcars,3)
   mpg cyl disp  hp drat    wt  qsec vs am gear carb           car
 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4      Mazda RX4
 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4  Mazda RX4 Wag
 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1     Datsun 710

Например, ранги столбца wt будут одним файлом .txt

      > head(sorted_mtcars,5)
      wt                 car
   5.424 Lincoln Continental
   5.345   Chrysler Imperial
   5.250  Cadillac Fleetwood
   4.070          Merc 450SE
   3.845    Pontiac Firebird

И ранги qsec столбец:

> head(sorted_mtcars,5)
   qsec            car
  22.90       Merc 230
  20.22        Valiant
  20.01  Toyota Corona
  20.00      Merc 240D
  19.90 Toyota Corolla 

Как я могу сделать это для всего фрейма данных?

1 Ответ

1 голос
/ 28 мая 2020

Использование a для l oop:

# for each column except "car"
for(col in setdiff(names(mtcars), "car")) {
  # write a csv
  write.csv(
    #  ordered by the column
    #  selecting the column and the "car" column
    x = mtcars[order(mtcars[[col]], decreasing = TRUE), c(col, "car")],
    # give it a nice filename
    file = paste0("mtcars_sorted_", col, ".csv")
  )
}
...