У меня есть кадр данных с одним столбцом символов, а остальные столбцы состоят из целых чисел. То, что я хочу сделать, это проверить значения определенного столбца (5), а если они> 1000, вставьте это значение во вновь созданный вектор. До сих пор Ive придумал это решение, но я столкнулся с ошибкой в моем выражении if. Любая помощь будет оценена по достоинству.Управление кадрами и векторами
D Является ли dataframe
greaterthan1000 <- vector ('numeric',length = nrow(D))
for (i in 1:nrow(D)){
if(D[[i]][[5]]>1000){
greaterthan1000 <- c(D[[i]][[5]])
}
}
Ошибка:
Error in if (D[[i]][[5]] > 1000) { : missing value where TRUE/FALSE needed
В дополнение:
Warning message: In Ops.factor(B[[i]][[5]], 1000) : ‘>’ not meaningful for factors
'greaterthan1000 = D [[5]] [D [[5]]> 1000]' будет работать, нет для цикла. В вашем коде замените 'D [[i]] [[5]]' на 'D [[5]] [i]'. – Gregor
Хотя, учитывая ваше предупреждение, вы также можете проверить класс. Если 'class (D [[5]]) является фактором, вам, вероятно, понадобится' D [[5]] = as.numeric (as.character (D [[5]])). – Gregor
ok, gimme a sec и плохо проверить оба. спасибо заранее, но – CnewbieWannabePro