Создание таблицы / фрейма данных / чего-то экспортируемого из функции Desc, выводимой в R
Я определенно новичок, хотя я использовал R для различных небольших задач в течение нескольких лет.
Что касается меня, я не могу понять, как получить результаты функции Desc во что-то, с чем я могу работать. Когда я сохраняю x<-Desc (mydata), класс (x) отображается как "Desc". В R studio он находится под Values и говорит "Список 1". Затем, когда я нажимаю на x, в первой строке написано: "Список из 25". В этом объекте есть список данных, но я не могу понять, как получить какие-либо из них.
Очевидно, у меня есть серьезное недопонимание структур данных R, но я искал последние 90 минут безрезультатно, поэтому решил, что смогу протянуть руку.
Короче говоря, я просто хочу извлечь определенные аспекты (N, среднее, UB, LB, медиана) описательной статистики, представленной в результатах Desc для нескольких наборов данных, и создать небольшую таблицу, с которой я затем смогу работать.
Спасибо за помощь.
1 ответ
Скажем, у вас есть датафрейм, 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
, вам затем возвращается 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]