1

集計を自動化するために expss パッケージを使用して、R でいくつかのテーブル関数を定義しました。私のテーブルの 1 つは、カテゴリのケースまたはパーセンテージとそれに続く平均を表示したいと考えています。平均は、同じカテゴリ変数に基づくか、別の変数として定義できます。全体的に、コードは完璧に機能します。一部の変数については、「do.call(data.frame, c(x, alis)) のエラー: 変数名は 10000 バイトに制限されています」というエラー コードに苦労し続けています。

このテーブルのコード

  Table2 = function (Q, banner=banner, caption , Q.mean, ddata=d, questlab=dquest, mis.val=999) {
  x_totaln<-eval(substitute(x),ddata)
  x_totaln[is.na(eval(substitute(Q),ddata))]<-NA
  if(missing(Q.mean))
  {Q_mean<-eval(substitute(Q),ddata)}
  else 
  {Q_mean<-eval(substitute(Q.mean),ddata)}
  Q_mean[Q_mean==mis.val]<-NA
  if(missing(caption))
  {caption<-eval(substitute(var_lab(Q_mean)),questlab)}
  eval.parent(substitute(
    { 
      banner %>%
        tab_cells (x_totaln) %>%
        tab_stat_cases(total_row_position = c("none"),label = 'N') %>%
        tab_cells (Q) %>%
        tab_stat_cases(total_row_position = c("none"),label = 'N') %>%
        tab_stat_cpct(total_row_position = c("none"), label = '%') %>%
        tab_cells (Q_mean) %>%
        tab_stat_mean(label = 'Mean') %>%
        tab_pivot (stat_position = "inside_rows") %>%  
        drop_c ()  %>%
        custom_format2()  %>%
        set_caption(caption)
    }
  ))
}

このコードは全体的に完璧に機能しています。

Table2(Q8_cat)

ここに画像の説明を入力

一部の変数では、エラー コードが生成されますが、

Table2(age_cat,Q.mean=age,caption="Your age at the start of the programme?")
 Error in do.call(data.frame, c(x, alis)) : 
  variable names are limited to 10000 bytes 
19.
do.call(data.frame, c(x, alis)) 

コードに変数を含めると、再び完璧に機能します

Table2test = function () {
  x_totaln<-eval(substitute(x),d)
  x_totaln[is.na(eval(substitute(age_cat),d))]<-NA
  Q_mean<-eval(substitute(age),d)
  Q_mean[Q_mean==999]<-NA
      banner %>%
        tab_cells (x_totaln) %>%
        tab_stat_cases(total_row_position = c("none"),label = 'N') %>%
        tab_cells (age_cat) %>%
        tab_stat_cases(total_row_position = c("none"),label = 'N') %>%
        tab_stat_cpct(total_row_position = c("none"), label = '%') %>%
        tab_cells (Q_mean) %>%
        tab_stat_mean(label = 'Mean') %>%
        tab_pivot (stat_position = "inside_rows") %>%  
        drop_c ()  %>%
        custom_format2()  %>%
        set_caption("Your age at the start of the programme?")
  
}

ここに画像の説明を入力

何かアドバイス?または、エラーが発生する理由を知っている人はいますか?

ありがとう

4

1 に答える 1