不能在r中的mutate_if function中使用is.na()函数
我试图在不能在r中的mutate_if function中使用is.na()函数,r,dplyr,R,Dplyr,我试图在mutate\u if()中使用is.na(),但出现了一个错误: is_逻辑(.p)中出错:找不到对象“n_day” n\u day确实是在我的数据帧中,我认为因为的参数集是.na(),我不能在mutate\u if()中使用它,但我不知道如何解决它 如果n_day中的值为NA,则在同一天将其替换为n_cum中的值 任何帮助都将不胜感激 我的代码如下: library(tidyverse) t <- structure(list(city = structure(c(1L, 1
mutate\u if()
中使用is.na()
,但出现了一个错误:
is_逻辑(.p)中出错:找不到对象“n_day”
n\u day
确实是在我的数据帧中,我认为因为的参数集是.na()
,我不能在mutate\u if()
中使用它,但我不知道如何解决它
如果n_day
中的值为NA
,则在同一天将其替换为n_cum
中的值
任何帮助都将不胜感激
我的代码如下:
library(tidyverse)
t <- structure(list(city = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("a", "b"), class = "factor"),
time = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 1L, 2L,
3L, 4L, 5L, 6L, 7L, 8L), .Label = c("2012/1/1", "2012/1/2",
"2012/1/3", "2012/1/4", "2012/2/1", "2012/2/2", "2012/2/3",
"2012/2/4"), class = "factor"), n_cum = c(1L, 2L, 3L, 4L,
5L, 6L, 7L, 8L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L)), class = "data.frame", row.names = c(NA,
-16L))
t
t2 <- t %>% group_by(city) %>%
mutate(n_day = n_cum - lag(n_cum))
t2 %>% mutate_if(is.na(n_day), n_day = n_cum)
库(tidyverse)
t%
突变(n_天=n_cum-滞后(n_cum))
t2%>%突变如果(is.na(n_天),n_天=n_cum)
mutate\u如果使用
一次对多个列执行操作(),这不是您在此处要查找的内容,因为您只想更改一个列
可以使用mutate
和if_else
解决该问题:
t2 %>% mutate(n_day = if_else(is.na(n_day),n_cum,n_day))
mutate\u如果使用
一次对多个列执行操作(),这不是您在这里要查找的内容,因为您只想更改一个列
可以使用mutate
和if_else
解决该问题:
t2 %>% mutate(n_day = if_else(is.na(n_day),n_cum,n_day))
在+
如果
条件下使用mutate_
t2%>%在(变量(n_天)~ifelse(is.na(.)、n_cum.)
在选择多个变量的情况下,只需将它们分别添加到vars
helper中。使用mutate\u at
+if
条件
t2%>%在(变量(n_天)~ifelse(is.na(.)、n_cum.)
在选择多个变量的情况下,只需将它们分别添加到vars
helper.t2%groupu by(city)%%>%mutate(n_day=if_else(is.na(lag(n_cum)),n_cum,n_cum-lag(n_cum)))。希望能有帮助。您不需要使用mutate_if.t2%group_by(city)%>%mutate(n_day=if_else(is.na(lag(n_cum)),n_cum,n_cum-lag(n_cum)))。希望能有帮助。如果需要,您不需要使用mutate_。