Создание таблицы / фрейма данных / чего-то экспортируемого из функции Desc, выводимой в R - PullRequest
0 голосов
/ 26 сентября 2018

Я определенно новичок, хотя я использовал R для различных небольших задач в течение нескольких лет.

В жизни я не могу понять, как получить результаты от функции "Desc"в то, что я могу работать с.Когда я сохраняю x <-Desc (mydata), класс (x) отображается как «Desc».В R studio он находится под Values ​​и говорит «Список 1».Затем, когда я нажимаю на x, он говорит: «Список из 25» в первой строке.В этом объекте есть список данных, но я не могу понять, как его получить. </p>

Очевидно, у меня серьезное недопонимание структур данных R, но я искалв течение последних 90 минут безрезультатно, так что я рассчитывал протянуть руку.

Короче говоря, я просто хочу извлечь некоторые аспекты (N, среднее значение, UB, LB, медиана) описательной статистики, предоставленнойрезультаты для нескольких наборов данных и создать небольшую таблицу, с которой я смогу потом работать.

Спасибо за помощь.

1 Ответ

0 голосов
/ 26 сентября 2018

Скажем, у вас есть фрейм данных, x, где:

x <- data.frame(i=c(1,2,3),j=c(4,5,6))

Вы можете установить:

desc.x <- Desc(x)

и получить доступ к информации по любому столбцу, например:

desc.x$i
desc.x$i$mead
desc.x$j$sd

И любые другие характеристики, которые придумывает Desc.$ является ключом здесь, это то, как вы получаете доступ к именованным полям list, которые возвращает Desc.

Редактировать: В случае, если вы пропустите один столбец (как это делает аскер) или простовектор к Desc, вам возвращается список из 1 элемента.Применяется тот же принцип, но обычный синтаксис другой.Теперь вы должны использовать:

desc.x <- Desc(df$my.col)
desc.x[[1]]$mean

В будущем способ атаковать - это посмотреть в окне среды в RStudio и поэкспериментировать, пытаясь выяснить, как получить доступ к полям, проверить исходный код.на github или где-либо еще, или (лучший первый выбор) используйте str(desc.x), что дает нам:

> str(desc.x)
List of 1
 $ :List of 25
  ..$ xname     : chr "data.frame(i = c(1, 2, 3), j = c(4, 5, 6))$i"
  ..$ label     : NULL
  ..$ class     : chr "numeric"
  ..$ classlabel: chr "numeric"
  ..$ length    : int 3
  ..$ n         : int 3
  ..$ NAs       : int 0
  ..$ main      : chr "data.frame(i = c(1, 2, 3), j = c(4, 5, 6))$i (numeric)"
  ..$ unique    : int 3
  ..$ 0s        : int 0
  ..$ mean      : num 2
  ..$ meanSE    : num 0.577
  ..$ quant     : Named num [1:9] 1 1.1 1.2 1.5 2 2.5 2.8 2.9 3
  .. ..- attr(*, "names")= chr [1:9] "min" ".05" ".10" ".25" ...
  ..$ range     : num 2
  ..$ sd        : num 1
  ..$ vcoef     : num 0.5
  ..$ mad       : num 1.48
  ..$ IQR       : num 1
  ..$ skew      : num 0
  ..$ kurt      : num -2.33
  ..$ small     :'data.frame':  3 obs. of  2 variables:
  .. ..$ val : num [1:3] 1 2 3
  .. ..$ freq: num [1:3] 1 1 1
  ..$ large     :'data.frame':  3 obs. of  2 variables:
  .. ..$ val : num [1:3] 3 2 1
  .. ..$ freq: num [1:3] 1 1 1
  ..$ freq      :Classes ‘Freq’ and 'data.frame':   3 obs. of  5 variables:
  .. ..$ level  : Factor w/ 3 levels "1","2","3": 1 2 3
  .. ..$ freq   : int [1:3] 1 1 1
  .. ..$ perc   : num [1:3] 0.333 0.333 0.333
  .. ..$ cumfreq: int [1:3] 1 2 3
  .. ..$ cumperc: num [1:3] 0.333 0.667 1
  ..$ maxrows   : num 12
  ..$ x         : num [1:3] 1 2 3
 - attr(*, "class")= chr "Desc"

«Список 1» означает, что вы получаете к нему доступ по desc.x[[1]], и ниже, что следует за $ s.Когда вы видите что-то вроде num[1:3], это означает, что это атомный вектор , поэтому вы получаете доступ к первому члену, как var$field$numbers[1]

...