в моем 4-х волновом продольном исследовании по коммутированию я хочу исключить участников, которые указали продолжительность поездки менее 1 минуты и более 180 минут. Код, который я сейчас использую, кажется, сначала работает нормально, но, хотя он исключил только около 200 участников из моих оригинальных 1500, мой n - только половина размера, а мои NA - двойные. Что случилось?
Я не буду выбирать каждую строку, чтобы исключить ее;это слишком много работы для 200 случаев. Я уже пробовал filter (), но это не сработало.
describe(selected.data$T2_cvar1) # mean 65.58 SD 127.84 NAs 518 n 1004
## vars n mean sd median trimmed mad min max range skew kurtosis
## X1 1 1004 65.58 127.84 25 33.89 22.24 0 999 999 3.97 17.2
## se
## X1 4.03
selected.data$T2_cvar1_select <- ifelse(is.na(selected.data$T2_cvar1) == TRUE, selected.data$T2_cvar1, ifelse(selected.data$T2_cvar1 > 0 & selected.data$T2_cvar1 < 181, selected.data$T2_cvar1, -999))
selected.data<- selected.data[selected.data$T2_cvar1_select != -999, ]
# 118 partcipants excluded, 1406 remain
#(got this information with dim command)
describe(selected.data$T2_cvar1) NAs 848
## vars n mean sd median trimmed mad min max range skew kurtosis
## X1 1 476 33.66 28.94 25 28.59 14.83 1 180 179 2.04 4.83
## se
## X1 1.33
Я повторяю это для трех других трехсторонних команд (T3, T4, T5), в которых говорится, что все еще 1322 участника
Почему выросли мои NA? И как я могу исключить этих людей, не отдавая половину моих данных?