就背景而言,我正在尝试确定某人在前/后评估中评估的至少五个因素中的至少一项是否总体得分有所提高。
我创建了五列“正”或“非”值,以确定因素得分是增加还是减少。针对每个因素重复以下代码:
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)]
语句将其删除。
为什么我的数据会发生这种情况?