Я новичок в R Studio. Для занятий я взял набор данных о выборах переписи населения США 2016 года и хочу провести серию Т-тестов над набором данных. Некоторые особенности набора данных. Во-первых, данные кодируются - от 1 до 4 - представляющие состояние гражданства. Я хочу посмотреть, влияют ли различные факторы на вероятность голосования (1 = да или 2 = нет).
Вот код:
factor <- c("Age", "Fathers_country_of_birth", "Mothers_country_of_birth","Highest_level_of_School_completed", "Country_of_birth")
citizen <- c("NATIVE, BORN IN THE UNITED STATES", "NATIVE, BORN IN PUERTO RICO OR OTHER U.S. ISLAND AREAS", "NATIVE, BORN ABROAD OF AMERICAN PARENT OR PARENTS", "FOREIGN BORN, U.S. CITIZEN BY NATURALIZATION")
for (f in factor) {
print(f)
for (i in 1:4){
print(paste("Citizenship is", citizen[i] ))
query <- paste("select * from result2 where Citizenship = ",i)
sample <- sqldf(query)
print(
(t.test(f ~ Vote_in_Election, data=sample, var.equal = FALSE) ) )
} }
И выдает ошибку "переменная длина"
> [1] "Age" [1] "Citizenship is NATIVE, BORN IN THE UNITED STATES" Show
> Traceback Error in model.frame.default(formula = f ~ Vote_in_Election,
> data = sample) : variable lengths differ (found for
> 'Vote_in_Election')
Если я уберу внешний цикл, я смогу запустить его нормально, конечно, я должен вводить значения в «коэффициент» одно за другим.
Запуская R Studio версии 1.1.463, R — это 3.5.2 в Windows 10.
Поскольку при переборе i будут разные строки данных, я попытался установить парное значение = FALSE, и оно все еще кричало на меня.
Я просмотрел SO, но не нашел решения. Что мне не хватает?
sqldf
можно записать:sample <- fn$sqldf("select * from result2 where Citizenship = $i")
- person G. Grothendieck   schedule 11.03.2019