Почему варианты этого t.test требуют различного кодирования? (Р)

Новичок в R и пытаюсь разобраться с его кодированием (новичок в кодировании в целом)

Мой вопрос заключается в том, что при выполнении t-тестов (парных и независимых) мне нужно изменить формулу, чтобы он распознавал мои столбцы. Следующие обе работы; однако "парный" код не будет работать, если стилизован как "независимый" код (с data = '').

Independent: t.test(Nicotine ~ Brand, data = nicotine, alternative='two.sided', conf.level=.95, var.equal=FALSE)

Соединенный: with(omega3, t.test(Before, After, paired = TRUE, alternative='greater', conf.level=.95))

Почему это происходит? в идеале я бы предпочел не использовать with формула, но я не могу понять, почему он не распознает "До" и "После", когда я добавляю аргумент data = omega3

Любое понимание очень ценится.

Thom

1 ответ

Это связано с тем, как данные используются функцией. Когда вы используете формулу, вы говорите R: "Используйте эту переменную в качестве моего предиктора (независимая переменная), а эту другую в качестве моего результата (зависимая переменная)". В случае независимого выборочного t-теста у вас будет:

continuous.variable  ~  dichotomous.variable
(outcome/dependent)     (predictor/independent)

С парными выборками у вас нет такой вещи, как "предиктор" (или, более широко говоря, "объяснительная переменная"). У вас просто есть два столбца, которые вы хотите сравнить друг с другом.

Таким образом, вы можете видеть формулу обозначений как приятную особенность R, но вы не можете использовать ее в любой ситуации.

Кроме того, есть альтернативы использованию with функция:

t.test(Before, After, paired = TRUE, alternative='greater', conf.level=.95, data=omega3)
# or
t.test(omega3$Before, omega3$After, paired = TRUE, alternative='greater', conf.level=.95)
Другие вопросы по тегам