Сводная таблица Stargazer пуста

Я хочу составить сводную таблицу наблюдателя звезд в R, которая даст мне соответствующее число наблюдений N, среднее значение, стандартное отклонение, минимум и максимум для переменных "educ" и "Exper". Я использовал следующий код для генерации таблицы в латексе.

rm(list = ls())
wage2 <- read_csv("~/homework/wage2.txt")
library(stargazer)

stargazer(wage2[c("educ","exper")], type = "latex", digits=1,flip = TRUE)

Я получаю следующий вывод. Как видите, таблица появляется, но она пуста. Если я использую стандартные R-данные (например, data ("mtcars")), это работает. У кого-нибудь есть идея, что может быть не так с моими данными? Обычная сводка команд R (wage2) работает отлично, но я не могу использовать это в Latex. Спасибо!

% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University.
E-mail: hlavac at fas.harvard.edu 
% Date and time: Mo, Mai 07, 2018 - 16:40:31  
\begin{table}[!htbp] \centering  
  \caption{}  
  \label{}  
\begin{tabular}{@{\extracolsep{5pt}}lcc}  
\\[-1.8ex]\hline  
\hline \\[-1.8ex]  
Statistic \\  
\hline \\[-1.8ex]  
N \\  
Mean \\  
St. Dev. \\  
Min \\  
Max \\  
\hline \\[-1.8ex]  
\end{tabular}  
\end{table}

Данные выглядят так:

> str(wage2)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   935 obs. of  17 variables:
 $ wage   : int  769 808 825 650 562 1400 600 1081 1154 1000 ...
 $ hours  : int  40 50 40 40 40 40 40 40 45 40 ...
 $ IQ     : int  93 119 108 96 74 116 91 114 111 95 ...
 $ KWW    : int  35 41 46 32 27 43 24 50 37 44 ...
 $ educ   : int  12 18 14 12 11 16 10 18 15 12 ...
 $ exper  : int  11 11 11 13 14 14 13 8 13 16 ...
  - attr(*, "spec")=List of 2
  ..$ cols   :List of 17
  .. ..$ wage   : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ hours  : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ IQ     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ KWW    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ educ   : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ exper  : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
    .. .. ..- attr(*, "class")= chr  "collector_double" "collector"
  ..$ default: list()
  .. ..- attr(*, "class")= chr  "collector_guess" "collector"
  ..- attr(*, "class")= chr "col_spec"
> head(wage2)
# A tibble: 6 x 17
   wage hours    IQ   KWW  educ exper tenure   age married black south
urban  sibs brthord
  <int> <int> <int> <int> <int> <int>  <int> <int>   <int> <int> <int>
<int> <int>   <int>
1   769    40    93    35    12    11      2    31       1     0     0  
1     1       2
2   808    50   119    41    18    11     16    37       1     0     0    
1     1      NA
3   825    40   108    46    14    11      9    33       1     0     0    
1     1       2
4   650    40    96    32    12    13      7    32       1     0     0  
1     4       3
5   562    40    74    27    11    14      5    34       1     0     0    
1    10       6
6  1400    40   116    43    16    14      2    35       1     1     0    
1     1       2
# ... with 3 more variables: meduc <int>, feduc <int>, lwage <dbl>

1 ответ

Решение

Чтобы создать сводку, Stargazer требует data.frame в качестве входных данных. Поскольку вы поставляете тиббл, stargazer не может выдавать никаких результатов.

Добавление as.data.frame() должно сделать свое дело **.

stargazer(as.data.frame(wage2[c("educ","exper")]), type = "latex", digits=1,flip = TRUE)

** Отказ от ответственности: поскольку вы не предоставляете воспроизводимый пример, я создал случайный тиббл, чтобы воспроизвести вашу ошибку, и снова попробовал тот же код с as.data.frame(), который дал удовлетворительный результат. Но я не могу "гарантировать", что ваш конкретный пример не страдает от дальнейших проблем со спецификацией.

Другие вопросы по тегам