У меня есть двойной цикл for для фрейма данных и его строк.Я применяю некоторые расчеты для каждой строки кадра данных (которые представляют разные батареи и, следовательно, все различаются по своим значениям).В конце я хочу проверить, соответствует ли ряд (например, батарея) критериям.Если это так, я хочу поместить его в новый файл, собирающий все батареи, которые соответствуют критериям.
df1 <- as.data.frame(matrix("values",nrow=24,ncol=19))
df2 <- as.data.frame(matrix("values",nrow=2976,ncol=22))
df3 <- df1[0,] #empty df of the same structure as df1
Что я делаю:
for(i in 1:nrow(df1)){
for(j in 1:nrow(df2)){
# some calculations giving me a result what the necessary capacity "nc" is
...
пока все работает нормально,Затем я хочу сравнить, если результат для каждой строки в df1 (например, необходимая емкость батареи) больше, чем условие "con":
...
con <- df1[i,4]
nc <- max(df2[[20]])) # defining the necessary capacity
if(con > nc){
newdf <- bind_rows(df3,df1[i,])
}
}
}
Я ожидаю, что newdf будет иметь значение от 0 до макс.24 рядаПо реальным данным я должен получить 11 записей.Я получил 1 (это был последний ряд df1) или более 30000 записей.Так что это не работает, как ожидалось.Есть идеи?Спасибо!