Почему я получаю сообщение об ошибке: «несоответствующие аргументы», хотя в моей матрице нет значений NA? - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь запустить код r из Network-Analysis on Atttitude: краткое руководство.

Вы можете найти его здесь .

Сначала мы загрузили когнитивные установки.

unzip('ANES2012.zip')
ANES2012 <- read.dta('anes_timeseries_2012_Stata12.dta')#loads the data to the object ANES2012

#########################
#Recode variables 
#Items regarding Obama

ObamaCog <- data.frame(Mor = as.numeric(ANES2012$ctrait_dpcmoral),#this creates a data frame containing the items tapping beliefs
                        Led = as.numeric(ANES2012 $ ctrait_dpclead),
                        Car = as.numeric(ANES2012$ctrait_dpccare),
                        Kno = as.numeric(ANES2012$ctrait_dpcknow),
                        Int = as.numeric(ANES2012$ctrait_dpcint),
                        Hns = as.numeric(ANES2012$ctrait_dpchonst))
ObamaCog[ObamaCog < 3] <- NA#values below 3 represent missing values

Мне пришлось немного изменить код, так как функция .binarize не работала.(Я не смог загрузить пакет ("cmprsk"), который был необходим.) Поэтому я установил library(biclust) и смог преобразовать данные в двоичную форму:

ObamaCog <- binarize(ObamaCog, threshold = 5)

Затем мы сделали то же самое для эмоциональных отношений:

ObamaAff <- data.frame(Ang = as.numeric(ANES2012$candaff_angdpc),#this creates a data frame containing the items tapping feelings
                        Hop = as.numeric(ANES2012$candaff_hpdpc), 
                        Afr = as.numeric(ANES2012$candaff_afrdpc), 
                        Prd = as.numeric(ANES2012$candaff_prddpc))
ObamaAff[ObamaAff < 3] <- NA#values below 3 represent missing values
ObamaAff <- binarize(ObamaAff, 4)#(not) endorsing the feelings is encoded as 1 (0)

И создал из нее одну Obama -матрицу:

Obama <- data.frame(ObamaCog,ObamaAff)

Затем мы опускаем значения NA:

Obama <- na.omit(Obama)

И япроверено:

write.csv(Obama, file = "Obama-Excel1")

В моей матрице больше нет значений NA.

И я думаю, что это соответствует требуемой структуре: nobs x nvars

    Mor Led Car Kno Int Hns Ang Hop Afr Prd
2     0   0   0   0   0   0   0   0   0   0
3     0   0   0   0   0   0   0   0   0   0
4     0   0   0   0   0   0   0   0   0   0

...

60    0   0   0   0   0   0   0   0   0   0
61    1   1   1   1   1   1   0   0   0   0
62    0   0   0   0   0   0   0   0   0   0
63    0   0   0   0   0   0   0   0   0   0
65    0   1   1   0   0   1   0   0   0   0
66    1   1   1   1   1   1   0   0   0   0
67    0   0   0   0   0   0   0   0   0   0

до 5914. И если было значение NAв ряду раньше он сейчас отсутствует.(Например, строка 64)

Если я пытаюсь запустить функцию IsingFit:

ObamaFit <- IsingFit(Obama)

Не работает, я получаю сообщение об ошибке:

Error in y %*% rep(1, nc) : non-conformable arguments

Я новичок в R, и я предположил, что несоответствующие аргументы являются NA -значениями, но, похоже, это не так.Может кто-нибудь сказать мне, что означает сообщение об ошибке и как я могу решить проблему, чтобы я мог использовать функцию IsingFit?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...