我有以下列表:
my_list <- list(c(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1), c(0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0), c(0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1))
> my_list
[[1]]
[1] 1 1 1 0 1 1 1 1 1 1 0 1 1
[[2]]
[1] 0 0 0 0 1 1 0 1 1 1 1 1 0
[[3]]
[1] 0 1 1 1 1 1 1 1 1 0 0 0 1
只要连续的1
少于四个,我想用1
替换那些0
。结果列表应如下所示:
> my_new_list
[[1]]
[1] 0 0 0 0 1 1 1 1 1 1 0 0 0
[[2]]
[1] 0 0 0 0 0 0 0 1 1 1 1 1 0
[[3]]
[1] 0 1 1 1 1 1 1 1 1 0 0 0 0
我相信我必须使用rle
和inverse.rle
函数,但是我不知道该怎么做。感谢您的帮助。
答案 0 :(得分:2)
对于每个列表组件,请使用observeEvent(input$plot_click$x, {
var <- input$plot_click$x
output$click_x <- renderText({
var
})
})
,如果每个rle
的{{1}}小于或等于values
,则将其替换为0,默认为3。然后执行lengths
的倒数以获取结果向量。
max_n
给予:
rle