Как создать эмпирический c .df из набора наблюдений? - PullRequest
0 голосов
/ 19 марта 2020

Предположим, что у меня есть вектор x = c(1, 1, 3, 0, 4, 5, 4). Я хотел бы спросить, есть ли функция для генерации этих данных. Результат моего желания

               x    c.d.f
1              0      1/7
2              1      3/7
3              3      4/7
4              4      6/7
5              5      7/7

Я пробовал функцию ecdf(c(1, 1, 3, 0, 4, 5, 4)), но я не понимаю значение этой функции

Empirical CDF 
Call: ecdf(c(1, 1, 3, 0, 4, 5, 4))
 x[1:5] =      0,      1,      3,      4,      5

Не могли бы вы помочь мне сгенерировать это c .df? Большое вам спасибо!

Ответы [ 2 ]

2 голосов
/ 19 марта 2020

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

x <- c(1, 1, 3, 0, 4, 5, 4)

Fn <- ecdf(x)
class(Fn)
#> [1] "ecdf"     "stepfun"  "function"
Fn(x)
#> [1] 0.4285714 0.4285714 0.5714286 0.1428571 0.8571429 1.0000000 0.8571429

Создано в 2020-03-19 пакетом Представить (v0.3.0)

2 голосов
/ 19 марта 2020

ecdf возвращает функцию. Вы получаете желаемый результат, используя

Fn <- ecdf(x)
out <- data.frame(x = knots(Fn), cdf = Fn(knots(Fn)))
out
#  x       cdf
#1 0 0.1428571
#2 1 0.4285714
#3 3 0.5714286
#4 4 0.8571429
#5 5 1.0000000
...