Преобразовать таблицу данных в таблицу частот правильно с весами - PullRequest
0 голосов
/ 22 мая 2019

Вот проблема

С этой таблицей данных

dt <- data.table( Type=c("E", "E", "B", "B","B","B","C",NA), ID=c(1,2,3,4,5,6,7,6), Frequency=c(17, 6, 3,8, 12,8,9,10))

Функция частоты пакета summarytools дает следующий результат:

summarytools::freq(dt,weights=dt$Frequency)

. Freq % Valid % Valid Cum. % Total % Total Cum.


    B   31.00     49.21          49.21     42.47          42.47
    C    9.00     14.29          63.49     12.33          54.79
    E   23.00     36.51         100.00     31.51          86.30
 <NA>   10.00                              13.70         100.00
Total   73.00    100.00         100.00    100.00         100.00

Здесь учитываются веса, а также вся таблица данных, но

не может дать мне проценты, в которые входит #NA count

(дает только действительные процентные значения)

Функция 'freq' из пакета 'questionr' дает это. См. Дополнительный столбец «%» перед столбцом «val%»

questionr::freq(dt$Type)

. n % val%

B 4 50.0 57.1<br> C 1 12.5 14.3<br> E 2 25.0 28.6<br> NA 1 12.5 NA<br> 4 rows

Но эта вторая функция не принимает

1.weights (частота столбца в моем примере)

2.Ввод таблицы данных (вместо указания отдельных столбцов)

Может быть, есть лучшая функция или даже некоторые хитрые строки кода, чтобы добавить Функциональность "%" в первой функции? Спасибо!

1 Ответ

1 голос
/ 22 мая 2019

Я получаю более сложный результат (список из трех элементов) из первого кода. Кроме того, есть столбец: «% Total», который, похоже, уже содержит то, что вы запрашиваете. Возможно, вы используете устаревшую версию пакета?

...