Вот некоторые примеры данных:
set.seed(1234) # Make the results reproducible
count <- 100
cs1 <- round(rchisq(count, 1), 2)
cs2 <- round(rchisq(count, 2), 2)
c(rep("Present", 30), rep("Absent", 30), rep("NA", 40)) -> temp
temp[temp == "NA"] <- NA
as.factor(temp) -> temp
temp1 <- round(rnorm(count, 3), 2)
temp1[7] <- NA
temp2 <- round(rnorm(count, 7), 2)
temp2[54] <- NA
c(rep("Yes", 30), rep("No", 30), rep("Maybe", 30), rep("NA", 10)) -> temp3
temp3[temp3 == "NA"] <- NA
as.factor(temp3) -> temp3
c(rep("Group A", 55), rep("Group B", 45)) -> temp4
as.factor(temp4) -> temp4
mydata <- data.frame(cs1, cs2, temp, temp1, temp2, temp3, temp4)
mydata$cs2[56:100] <- NA ; mydata
Я знаю, что могу вычислить итоговую статистику для каждой переменной, стратифицированной на temp4
, вот так:
by(mydata, mydata$temp4, summary)
Тем не менее, я также хотел бы рассчитать t.test или chisq.test для каждой переменной, стратифицированной на temp4
.Я попытался просто изменить приведенный выше код, чтобы сделать это, но это всегда дает мне ошибкуКажется, ошибка связана с тем, что некоторые переменные в фрейме данных являются числовыми (и, следовательно, потребуется t.test), в то время как другие являются факторами (и, таким образом, потребуется chisq.test).
Есть ли простой способ сказать R проверить переменную, чтобы увидеть, что это за вид, а затем запустить соответствующий тест, и все сразу?И все равно распечатывать все результаты, даже если они обнаружат ошибку?
Меня не беспокоит целесообразность этого (например, я знаю о рисках многократного тестирования и т. Д.), А скорее простонужно знать как это сделать.Спасибо!