Для контекста, я пытаюсь определить, было ли у кого-то общее увеличение оценки, по крайней мере, по одному из пяти факторов, оцененных в оценках до / после.
Я создал пять столбцов значений «Позитив» или «Не», чтобы определить, увеличился или уменьшился показатель фактора.Этот код повторяется для каждого фактора:
MSWC$Factor1 <- MSWC$Post_F1.y - MSWC$Pre_F1.x
MSWC$Factor1_ <- ifelse(MSWC$Factor1 > 0, "Positive", "Same/Neg")
Там были пропущенные значения, потому что некоторые имели неполные данные до или после.
Я создал столбец, чтобы определить, был ли один фактор в строке, который был положительным, с использованием этого кода: MSWC$Overall <- ifelse(MSWC$Factor1_ == "Positive" | MSWC$Factor2_ == "Positive" | MSWC$Factor3_ == "Positive" | MSWC$Factor4_ == "Positive" | MSWC$Factor5_ == "Positive", "Positive", "Same/Neg")
Вывод:
Factor1 Factor2 Factor3 Factor4 Factor5 Overall
Positive Not Not NA Positive Positive
Not NA NA Positive Not Positive
Not Not Not Not Not Not
NA NA NA NA NA NA
Not NA NA Not Not NA
Этот код былочевидно не идеальный, так как он не кодировал строки без положительных значений, этот оператор создал столбец для поиска строк со всеми пропущенными значениями.
MSWC$Meh <- rowSums(ifelse(is.na(MSWC[,16:24]) == FALSE, 1, 0))
Этот оператор подается во второй столбец для кодирования значений, которые должны быть указаны как "Не".
MSWC$Outcomess <- ifelse(is.na(MSWC$Overall_Positive) & MSWC$Meh > 0, "Same/Neg", MSWC$Overall_Positive)
Этот столбец создает именно то, что мне нужно, и исправляет последнюю строку, чтобы она выглядела полностью:
Factor1 Factor2 Factor3 Factor4 Factor5 Overall Outcomess
Positive Not Not NA Positive Positive Positive
Not NA NA Positive Not Positive Positive
Not Not Not Not Not Not Not
NA NA NA NA NA NA NA
Not NA NA Not Not NA Not
Проблема в том, что теперь, когда я экспортирую эти данныеЯ получаю пять дубликатов столбцов "общий" и пять дубликатов столбцов "результат" (по одному для каждого фактора).Их легко удалить в Excel, но они не отображаются в среде, поэтому я не могу удалить их с помощью оператора MSWC[,-c(5:10)]
.
Почему это происходит с моими данными?