Существует ли функция R для заполнения значения NA столбца определенным образом? - PullRequest
0 голосов
/ 06 февраля 2019

Итак, у меня есть такой фрейм данных:

enter image description here

И я бы хотел, чтобы все и только отсутствующие значения, которые у меня были (NA) заменяются следующей формулой: Value1 / Value2

enter image description here

Я знаю, как это сделать с помощью цикла, но когда речь идет о крупномасштабных данныхкадр занимает время, поэтому мне было интересно, есть ли какая-либо функция / совет, чтобы дать мне ожидаемый результат быстрее

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

идеально подходит для tidyverse

library(tidyverse)
d %>% 
  mutate(Result = ifelse(is.na(Result), Value1/Value2, Result)))

или

d %>% 
  mutate(Result = case_when(is.na(Result) & Value2 == 0 ~ Value2, 
                            is.na(Result) ~ Value1/Value2, 
                            TRUE ~ Result))
0 голосов
/ 06 февраля 2019

Не прямая функция, но что-то вроде этого будет работать

#Get indices for NA non-zero values
inds1 <- is.na(df$Result) & df$Value2 != 0
#Get indices for NA zero values
inds2 <- is.na(df$Result) & df$Value2 == 0

#Replace them
df$Result[inds1] <- df$Value1[inds1]/df$Value2[inds1]
df$Result[inds2] <- 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...