Я пытаюсь запустить код 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
?