Вот очень простой игрушечный набор данных, чтобы проиллюстрировать проблему, с которой я в настоящее время сталкиваюсь с другим набором данных.
Предположим, мы протестировали 4 участника математического теста, где каждый из них ответил на 4 вопроса. 2 из этих вопросов были легкими, и 2 из них были трудными. Но вопросы были представлены в случайном порядке, поэтому некоторые люди начали с простого вопроса, а некоторые начали с трудного вопроса. И у нас есть бинарная переменная ответа в этом эксперименте, где мы классифицировали ответы как «правильные» или «неправильные».
Вот фиктивные данные:
my_matrix <- matrix(c(rep(1:4, each=4), rep(1:4, 4), rep(c("difficult", "easy"), times = 4), rep(c("easy", "difficult"), times = 4), rep(c("correct", "incorrect"), times = 8)), nrow=16, ncol=4, byrow = FALSE)
my_matrix
my_data_frame <- as.data.frame(my_matrix)
colnames(my_data_frame) <- c("Participant", "ItemNumber", "QuestionDifficulty", "Answer")
my_data_frame$Participant <- as.numeric(my_data_frame$Participant)
my_data_frame
Теперь я хочу создать новый столбец так, чтобы его значение было «DifficultFirst» для людей, которые начали с трудного вопроса и «EasyFirst» для людей, которые начали с простого вопроса. Я попробовал следующий код для этого.
for (i in 1:16) {
ifelse(my_data_frame$Participant == i & my_data_frame$ItemNumber == 1 & my_data_frame$QuestionDifficulty =="difficult",
my_data_frame$FirstQuestion[((i*4)-3):(i*4)] <- "DifficultFirst",
my_data_frame$FirstQuestion[((i*4)-3):(i*4)] <- "EasyFirst")}
Но это не сработало. В частности, я получил сообщение об ошибке о замене и несоответствии данных с точки зрения номеров строк, и я не знаю, почему это так.
Уже поздно, и мой мозг может быть слишком уставшим, поэтому извиняюсь, если это глупый вопрос. Но любая помощь будет оценена. Спасибо!