我在RStudio中使用ifelse is.na滞后函数怎么办?无法返回以下正确的0和1

丹尼斯·K。

由于我的代码返回了错误的值,因此需要帮助来纠正我的代码。以下是我的数据框:

df1 <- structure(list(time = structure(c(1613331000, NA, NA, NA, NA, 
1613331300, NA, NA, NA, NA, 1613331600, NA, NA, NA, NA, 1613331900
), class = c("POSIXct", "POSIXt"), tzone = "UTC"), value1 = c(5.68, 
NA, NA, NA, NA, 3.57, NA, NA, NA, NA, 0.75, NA, NA, NA, NA, 0
), value2 = c(0.0195194035275764, 0.0387245255910196, 0.00162031204013874, 
0.0086653793112231, 0.0244045196814313, 5.0142002638127, 0.00389385395628555, 
0.0047142460835886, 0.00239093814854349, 0.00187517052122717, 
0.000630486008603659, 0.00144237859581879, 0.00126141089854626, 
0.0000177735700308129, 0.000335643594999671, 0.012771405154744
), test = c(NA, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0)), class = "data.frame", row.names = c(NA, 
-16L))

我尝试重新创建的逻辑是,如果当前和前四个value2输入小于value1,则向df2 $ test输出“ 1”。如果至少一个当前值或前四个value2等于或大于value1,则输出“ 0”。我想为我的结果加1的实例。如果可能,将NA保留在没有时间的行上。

这是我的代码,任何建议,不胜感激,是第一次张贴。

df2 <-  df1 %>%
mutate (test = 0,
test = ifelse(is.na(value1) < value2, 0, 1),
test = ifelse(is.na(value1) < lag(value2, k=1),0, 1),
test = ifelse(is.na(value1) < lag(value2, k=2),0, 1),
test = ifelse(is.na(value1) < lag(value2, k=3),0, 1),
test = ifelse(is.na(value1) < lag(value2, k=4),0, 1))
View(df2)
罗纳克·沙(Ronak Shah)

使用zoorollapplyr

library(dplyr)

df1 %>%
  mutate(last4max = zoo::rollapplyr(value2, 5, max, fill = NA), 
         test = as.integer(value1 > last4max))

#                  time value1       value2 test    last4max
#1  2021-02-14 19:30:00   5.68 1.951940e-02   NA          NA
#2                 <NA>     NA 3.872453e-02   NA          NA
#3                 <NA>     NA 1.620312e-03   NA          NA
#4                 <NA>     NA 8.665379e-03   NA          NA
#5                 <NA>     NA 2.440452e-02   NA 0.038724526
#6  2021-02-14 19:35:00   3.57 5.014200e+00    0 5.014200264
#7                 <NA>     NA 3.893854e-03   NA 5.014200264
#8                 <NA>     NA 4.714246e-03   NA 5.014200264
#9                 <NA>     NA 2.390938e-03   NA 5.014200264
#10                <NA>     NA 1.875171e-03   NA 5.014200264
#11 2021-02-14 19:40:00   0.75 6.304860e-04    1 0.004714246
#12                <NA>     NA 1.442379e-03   NA 0.004714246
#13                <NA>     NA 1.261411e-03   NA 0.002390938
#14                <NA>     NA 1.777357e-05   NA 0.001875171
#15                <NA>     NA 3.356436e-04   NA 0.001442379
#16 2021-02-14 19:45:00   0.00 1.277141e-02    0 0.012771405

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我无法将内容正确居中,怎么办?

我该怎么办,所以程序将输出1和0而不是true和false?

在函数中使用%>%和ifelse()

如果我忽略了shared_ptr返回类型的函数的返回值怎么办

如果我在“接球”中使用“投掷”怎么办?

我在Pygame中使用.blit()怎么办?

Java,如果我想从函数返回不同的类型怎么办?

函数str_slug已弃用,无法正常工作,我该怎么办?

在mutate中使用ifelse并处理NA

在 sapply 函数中使用 ifelse 语句

无法让我的域工作。我应该怎么办?

我无法导入 PhotoView。我该怎么办?

我们可以在Spark DataFrame列中使用Pandas函数吗?如果是这样,怎么办?

Kotlin:返回泛型类型的函数。如果我不知道应该返回哪种具体类型该怎么办?

我的SQL返回空结果集,怎么办?

findViewById()返回null-我该怎么办?

我的ajax调用总是返回错误,该怎么办

收到Alamofire的返回数据后,我该怎么办?

如果我不调用close(fd)函数怎么办?

位置0没有行...。我该怎么办..?

由于这种模式,在同一结构中使用事务和简单的DB连接,我该怎么办?

用cont无法完成的callCC我该怎么办?

findViewByID()无法正常工作。我该怎么办?

我该怎么办呢?该怎么办?

如果我不想在使用函数后输出“none”,我该怎么办

在特定列中使用 NA 进行 mutate 和 ifelse

图像和js无法正常工作,但可以在主文件夹之外工作,我该怎么办?

为了能够在Windows Store应用程序中使用SQLite注释,我该怎么办?

我们可以在jsp中使用@autowired吗?如果是,那怎么办?