summarytools :: freq дает непредвиденные результаты, когда переменные являются факторами без NA - PullRequest
0 голосов
/ 11 июня 2019

Поскольку мои данные суммировали счетчики, я использую функцию freq из summmarytools с весами.

С весами функция freq отлично работает для суммирования столбца, когда

  1. .столбец числовой или целочисленный
  2. Столбец - это коэффициент без значений NA или NaN, тогда сводка выводит уровень из столбца и отображает его в виде NA!

Я столкнулся с этой проблемой в живом случае и воспроизвел образец.

     library(data.table)
     library(summarytools)
     dt <- data.table(A= as.integer( c(5,3,4,5,6,1,2,NA,3,NaN)),
             B= c(5,3,4,5,6,1,2,NA,3,NaN),
             C=as.factor( c(5,3,4,5,6,1,2,NA,3,NA)),
             D=as.factor( c(5,3,4,5,6,1,2,NaN,3,NaN)),
             E=as.factor( c(5,3,4,5,6,1,2,5,3,3)),

             Frequency=c(10,20,30,40,5,60,7,80,99,10)
           )
     str(dt)

частота, являющаяся целым или числовым, не имеет значения

, если мыесть коэффициент без значений Nan или NA, это имеет значение

writeLines("\n\n\n Without weights: No errors")
#summarytools::freq(dt[,1:5]) #Commented to minimize clutter
writeLines("\n\n\n With weights, Column E shows incorrect values but not C and D")
summarytools::freq(dt[,1:5],weights=dt$Frequency)



 Without weights: No errors



 With weights, Column E shows incorrect values but not C and D
 1 NaN value(s) converted to NA

 0 NaN value(s) converted to NA

 Weighted Frequencies  
 dt$A  
 Weights: weights  

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

      1    60.00     22.14          22.14     16.62          16.62
      2     7.00      2.58          24.72      1.94          18.56
      3   119.00     43.91          68.63     32.96          51.52
      4    30.00     11.07          79.70      8.31          59.83
      5    50.00     18.45          98.15     13.85          73.68
      6     5.00      1.85         100.00      1.39          75.07
   <NA>    90.00                              24.93         100.00
  Total   361.00    100.00         100.00    100.00         100.00

dt $ B
Тип: Числовой

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

      1    60.00     22.14          22.14     16.62          16.62
      2     7.00      2.58          24.72      1.94          18.56
      3   119.00     43.91          68.63     32.96          51.52
      4    30.00     11.07          79.70      8.31          59.83
      5    50.00     18.45          98.15     13.85          73.68
      6     5.00      1.85         100.00      1.39          75.07
   <NA>    90.00                              24.93         100.00
  Total   361.00    100.00         100.00    100.00         100.00

DT $ C
Тип: Фактор

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

      1    60.00     22.14          22.14     16.62          16.62
      2     7.00      2.58          24.72      1.94          18.56
      3   119.00     43.91          68.63     32.96          51.52
      4    30.00     11.07          79.70      8.31          59.83
      5    50.00     18.45          98.15     13.85          73.68
      6     5.00      1.85         100.00      1.39          75.07
   <NA>    90.00                              24.93         100.00
  Total   361.00    100.00         100.00    100.00         100.00

DT $ D
Тип: Фактор

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

      1    60.00     22.14          22.14     16.62          16.62
      2     7.00      2.58          24.72      1.94          18.56
      3   119.00     43.91          68.63     32.96          51.52
      4    30.00     11.07          79.70      8.31          59.83
      5    50.00     18.45          98.15     13.85          73.68
      6     5.00      1.85         100.00      1.39          75.07
   <NA>    90.00                              24.93         100.00
  Total   361.00    100.00         100.00    100.00         100.00

DT$ E
Тип: Фактор

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

      1    60.00     16.85          16.85     16.62          16.62
      2     7.00      1.97          18.82      1.94          18.56
      3   129.00     36.24          55.06     35.73          54.29
      4    30.00      8.43          63.48      8.31          62.60
      5   130.00     36.52         100.00     36.01          98.61
   <NA>     5.00                               1.39         100.00
  Total   361.00    100.00         100.00    100.00         100.00

1 Ответ

0 голосов
/ 10 июля 2019

Исправление было выпущено для этого. Вы можете установить последнюю версию с GitHub с: devtools::install_github("dcomtois/summarytools")

или, чтобы получить последнюю версию для разработки:
devtools::install_github("dcomtois/summarytools", ref = "dev-current)

...