Возможность вырезать значения ниже порога в papaja :: apa_table - PullRequest
2 голосов
/ 26 мая 2020

Я не могу понять, как выборочно печатать значения в таблице выше или ниже некоторого значения. То, что я ищу, в психологическом пакете Ревелла известно как «вырезка». MWE ниже.

library("psych")
library("psychTools")
derp <- fa(ability, nfactors=3)
print(derp, cut=0.5) #removes all loadings smaller than 0.5
derp <- print(derp, cut=0.5) #apa_table still doesn't print like this

Вопрос в том, как мне добавить этот фрагмент в apa_table? Печать apa_table (derp) распечатывает всю таблицу, включая все значения.

1 Ответ

2 голосов
/ 26 мая 2020

Метод print из psych не возвращает отформатированные загрузки, а возвращает только учтенную таблицу отклонений. Однако вы можете получить желаемый результат, вручную отформатировав таблицу нагрузок:

library("psych")
library("psychTools")
derp <- fa(ability, nfactors=3)

# Class `loadings` cannot be coerced to data.frame or matrix
class(derp$Structure)
  [1] "loadings"
# Class `matrix` is supported by apa_table()
derp_loadings <- unclass(derp$Structure)
class(derp_loadings)
  [1] "matrix"
# Remove values below "cut"
derp_loadings[derp_loadings < 0.5] <- NA

colnames(derp_loadings) <- paste("Factor", 1:3)

apa_table(
  derp_loadings
  , caption = "Factor loadings"
  , added_stub_head = "Item"
  , format = "pandoc" # Omit this in your R Markdown document
  , format.args = list(na_string = "") # Don't print NA
)
*Factor loadings*
Item        Factor 1   Factor 2   Factor 3 
----------  ---------  ---------  ---------
reason.4                          0.60     
reason.16                                  
reason.17                         0.65     
reason.19                                  
letter.7               0.61                
letter.33              0.56                
letter.34              0.65                
letter.58                                  
matrix.45                                  
matrix.46                                  
matrix.47                                  
matrix.55                                  
rotate.3    0.70                           
rotate.4    0.73                           
rotate.6    0.63                           
rotate.8    0.63                           
...