Исследуйте фрейм данных и предоставьте нумерованный список переменных в R - PullRequest
0 голосов
/ 05 июня 2019

Работая в R, я часто пытаюсь установить подмножество или использовать lapply для наборов данных, используя номер переменной.

Например, на воображаемом кадре данных: df; для изменения класса переменных 1, 4, 6, 7, 8, 9, 10, 11, 12, 15, 18; к числовому я бы использовал:

df[,c(1,4,6:12,15,19)] <- lapply(df[,c(1,4,6:12,15,19)], as.numeric)

Когда кадр данных очень велик, попытка подсчитать порядковый номер переменных из str() или glimpse() может быть чрезвычайно сложной.

Таким образом, мне интересно, существует ли способ генерировать представление переменных, содержащихся в наборе данных, с указанием их имени, их класса и, в идеале, нескольких записей (как в случае с str() и glimpse() ), но рядом с именем каждой переменной указано ее положение?

colnames() является частичным решением в том смысле, что результирующий вектор chr имеет некоторую нумерацию, но не такую ​​полезную, как str() или glimpse().

1 Ответ

2 голосов
/ 05 июня 2019

Если вы действительно хотите что-то, что просто показывает имена столбцов, индекс и класс, вы можете написать свою собственную оболочку (и изменить вывод на печать так, как вам нравится).

custom_glimpse <- function(df) {
  data.frame(
    col_name = colnames(df),
    col_index = 1:ncol(df),
    col_class = sapply(df, class),
    row.names = NULL
  )
}
custom_glimpse(mtcars)
#>    col_name col_index col_class
#> 1       mpg         1   numeric
#> 2       cyl         2   numeric
#> 3      disp         3   numeric
#> 4        hp         4   numeric
#> 5      drat         5   numeric
#> 6        wt         6   numeric
#> 7      qsec         7   numeric
#> 8        vs         8   numeric
#> 9        am         9   numeric
#> 10     gear        10   numeric
#> 11     carb        11   numeric

Создано в 2019 году-06-05 представьте пакет (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...