2013-08-07 2 views
0

EDITфакторный анализ печати от factanal() с пунктом этикетки

Так это выглядит, как будто это что-то в моем вызове library(reshape), который нарушения маркировки факторов. Это не было включено в минимальный пример, но теперь будет добавлено. Не нужно создавать пример, но это необходимо для воссоздания проблемы. Мне нужна библиотека, чтобы получить мои данные в форме, чтобы сделать даже factanal(). Любые идеи, какая часть изменения нарушает его и как его исправить?


Оригинального вопрос

Я бежал фактор анализы на моих данных и был, имеющими прерывистый вопрос с тем, как результаты печати.

Если создать набор данных вроде следующего:

library(reshape) 
mock <- data.frame(
    sample_name1 = sample(1:100), 
    sample_name2 = sample(1:100), 
    sample_name3 = sample(1:100), 
    s_amplename_4 = sample(1:100), 
    samplename5 = sample(1:100), 
    sa_mplen_a_me_6 = sample(1:100), 
    samplename7 = sample(1:100), 
    samplename8 = sample(1:100) 
) 

и запустить факторный анализ с

factanal(mock, factors = 2) 

я получаю вывод на печать очень мило с именами элементов в качестве меток для ряды, например:

# Snip snip 
Loadings: 
       Factor1 Factor2 
sample_name1 -0.126 -0.105 
sample_name2 -0.414   
sample_name3  0.665   
s_amplename_4   -0.314 
samplename5    0.850 
sa_mplen_a_me_6 -0.117   
samplename7  0.442   
samplename8  -0.139 

Этот вид продукции именно то, что я ищу. Тем не менее, когда я запускаю тот же тип анализа на моих собственных данных (и я извиняюсь за длины здесь):

miniset <- structure(list(`clarity1` = c(2, 2, 2, 3, 4.5, 1.5, 1.5, 3.5, 
              2, 6, 2.5, 4, 1, 1.5, 6, 2, 5.5, 2, 2, 3, 1.5, 5, 3.5, 2, 1.5, 
              2.5, 3, 3, 2, 1), 
          `clarity2` = c(1.5, 2, 2, 2, 3.5, 5, 3, 5, 
              2, 4, 2, 2.5, 1, 1.5, 2, 4, 5, 2, 2, 3.5, 6, 1, 2, 1.5, 1, 2, 
              2, 3, 6.5, 1), 
          `clarity3` = c(3, 3.5, 2, 3.5, 5.5, 4, 6, 5.5, 
              2, 3, 3, 3.5, 1, 2.5, 2, 5, 5, 5, 2, 6.5, 5.5, 5, 5.5, 6, 3, 
              2, 2, 5, 4.5, 5.5), 
          `detail1` = c(3, 4, 2, 6, 5, 6.5, 5.5, 
              4, 3, 6, 2.5, 4, 1, 4, 2, 4.5, 7, 6.5, 2, 6.5, 6, 2, 6, 5, 2.5, 
              5.5, 4, 5.5, 6, 1.5), 
          `detail2` = c(3.5, 4, 4, 6.5, 4.5, 6, 
              4, 4.5, 2, 6, 2.5, 5, 2, 4, 3, 6, 7, 7, 2, 6.5, 6, 3, 6, 6, 2.5, 
              6, 3, 5, 6.5, 2.5), 
          `detail3` = c(2.5, 4, 2, 6, 5, 6, 6, 4, 
              2, 6, 2, 5, 2, 3, 3, 5, 6.5, 6, 2, 6.5, 7, 7, 5.5, 5, 3.5, 2, 
              3, 5, 6, 2), 
          `complete1` = c(2, 2.5, 2, 3, 3.5, 5.5, 2.5, 2.5, 
              2, 3, 3, 3.5, 2, 4, 3, 3, 7, 4, 2, 3, 6, 3, 5.5, 2, 3, 2, 2, 
              3, 6, 3), 
          `complete2` = c(3, 4.5, 2, 3, 4.5, 6, 6, 4.5, 3, 
              3, 3.5, 4, 2, 5, 3, 4, 7, 4, 2, 6, 7, 5, 5, 6, 3, 3, 5, 5, 6, 
              2), 
          `complete3` = c(3, 4.5, 2, 2.5, 4.5, 6.5, 5, 5, 2, 6.5, 
              3.5, 3.5, 1, 3, 3, 2.5, 7, 4, 2, 6, 1.5, 7, 5.5, 6.5, 3.5, 5.5, 
              3, 3, 2.5, 1), 
          `truthful1` = c(2.5, 2, 2, 3, 3.5, 2, 2, 2.5, 
              2, 3, 3, 2.5, 2, 3, 2, 2, 3.5, 3, 2, 3.5, 1.5, 1, 3.5, 2.5, 3, 
              2, 2, 3, 1.5, 1.5), 
          `truthful2` = c(2.5, 1.5, 2, 2, 3, 1.5, 
              2, 1, 1, 5.5, 3, 3.5, 1, 4.5, 2, 2, 5, 2, 2, 1.5, 4.5, 1, 3.5, 
              2, 3.5, 2.5, 2, 2, 4.5, 1), 
          `truthful3` = c(2, 1.5, 2, 3.5, 
              2.5, 2, 2, 2.5, 2, 2, 3.5, 2.5, 1, 1.5, 3, 2, 5, 3, 3, 2, 3.5, 
              1, 2, 1, 3.5, 2, 2, 2.5, 4.5, 1), 
          `relevant1` = c(1.5, 1.5, 
              2, 5, 2.5, 1.5, 2, 3.5, 2, 4.5, 2.5, 3.5, 1, 3.5, 3, 1.5, 5.5, 
              3.5, 2, 2, 6, 3, 3.5, 3, 1.5, 2, 3, 3, 6, 1), 
          `relevant2` = c(1.5, 
              3, 2, 2, 3.5, 1.5, 2.5, 5.5, 1, 2, 3.5, 2, 1, 1.5, 2, 4, 5.5, 
              2, 3, 5.5, 5.5, 1, 4, 5, 1.5, 2, 3, 2.5, 3, 1), 
          `relevant3` = c(1.5, 
              2, 2, 3, 2, 1, 2, 2, 1, 2, 1.5, 2.5, 1, 1.5, 2, 1.5, 5.5, 5, 
              2, 1, 7, 1, 1, 2, 1, 2, 3, 3, 2.5, 1)), 
        .Names = c("clarity1", 
           "clarity2", "clarity3", "detail1", "detail2", "detail3", 
           "complete1", "complete2", "complete3", "truthful1", "truthful2", 
           "truthful3", "relevant1", "relevant2", "relevant3"), 
        row.names = c(NA, 30L), class = c("cast_df", "data.frame")) 

factanal(miniset, factors = 3) 

результат гораздо менее довольно, например:

Loadings: 
     Factor1 Factor2 Factor3 
[1,]   0.222 0.664 
[2,] 0.559 0.524   
[3,] 0.824     
[4,] 0.740 0.361 0.282 
[5,] 0.698 0.374 0.251 
[6,] 0.783 0.278 0.265 
[7,] 0.498 0.598 0.140 
[8,] 0.796 0.227 0.204 
[9,] 0.490 -0.240 0.835 
[10,] 0.147 0.156 0.348 
[11,]   0.697 0.324 
[12,]   0.756   
[13,] 0.319 0.811 0.204 
[14,] 0.567 0.252 0.108 
[15,] 0.320 0.690 

Таким образом, вместо имея хорошие имена элементов в качестве ярлыков для нагрузок, теперь я получаю индексы. Хотя это прекрасно для меня, я буду работать с профессором завтра, который менее знаком с R и, вероятно, разочаруется в отсутствии ярлыков. Так что же происходит с ярлыками во втором случае? И как я могу вернуть их?

+2

Я не могу воспроизвести это. Когда Я запускаю ваш код, вывод отлично «хорошенький» с ярлыками и все такое. – joran

+0

@joran. Я еще раз устранил проблему и обновил вопрос соответственно. – Ryan

ответ

4

Вопрос заключается в том, что miniset является cast_df и factanal звонками as.matrix(x). Метод as.matrix.cast_df использует rrownames и rcolnames (все функции reshape) для извлечения «специальных имен измерений».

Для miniset это NULL (отсюда теряются имена розеров). Не зная, как вы построили miniset Здесь я больше не могу помочь. (Вы должны были использовать reshape построить miniset в какой-то момент, как вы создали объект cast_df.

Хорошая новость заключается в том, что

factanal(as.data.frame(miniset)) 

работ, как вы хотите

+0

Спасибо! Мне все равно странно, что он отлично работает, когда я загружаю то же самое структура без пакета 'reshape', но после загрузка изменяет его. Вернется ли она к 'as.matrix.data.frame', когда метод 'cast_df' не найден? – Ryan

+1

@Ryan - точно - 'as.matrix.cast.df' является функцией в пакете' reshape'. – mnel

Смежные вопросы