Это очень простой вопрос, но я надеюсь, что кто-то сможет помочь мне избежать лишних строк ненужного кода. У меня есть простой dataframe:Удаление NA при умножении столбцов
Df.1 <- data.frame(A = c(5,4,7,6,8,4),B = (c(1,5,2,4,9,1)),C=(c(2,3,NA,5,NA,9)))
То, что я хочу сделать, это произвести дополнительный столбец, который является умножение А, В и С, которые я тогда cbind к первоначальному dataframe.
Итак, я обычно использую:
attach(Df.1)
D<-A*B*C
Но, очевидно, где NAs в колонке C, я получаю ЧА в переменной D. Я не хочу, чтобы исключить все строки NA, а просто игнорировать значения NA в этом столбце (а затем значение в D было бы просто умножением A и B или где C было доступно, A * B * C.
Я знаю, что я мог бы просто заменить NA с 1s , поэтому расчет остается неизменным или используется в случае, если вы делаете это, но я был занят тем, что упрощает этот процесс?
Любые идеи?
Как насчет 'D <- A * B * (! C * is.na (C) + 1 * is.na (C))', что подлый способ обойти с помощью 'if'. –
Было бы здорово, но я боюсь @CarlWitthoft, что строка кода не работает. –
мои извинения - я не могу проверить/отладить прямо сейчас. Можете ли вы сказать мне, какая ошибка (или плохой результат)? –