如何解决用期望值替换零 数据
我希望使用NaN删除具有4个或更多连续值0的所有0值。您的帮助将不胜感激。
我有以下数据:
driver.findelement(By.(locator(locator details)).sendKeys(Keys.ARROW-DOWN,Keys.RETURN)
我想要得到什么:
A B C
1 2 0
0 8 0
0 0 0
0 0 0
0 0 8
0 4 9
解决方法
我们可以使用rle
来做到这一点。用lapply
循环遍历各列,在逻辑向量(rle
)上使用x==0
返回相同的相邻元素(“值”及其lengths
),将不具有lengths
大于或等于4的“值”分配为FALSE,用inverse.rle
取消列出列表,并将其用于replace
将“ x”的值分配给{ {1}}
NA
或带有df1[] <- lapply(df1,function(x) {
i1 <- inverse.rle(within.list(rle(x == 0),values[!(values & lengths >=4)] <- FALSE))
replace(x,i1,NA)
})
df1
# A B C
#1 1 2 NA
#2 NA 8 NA
#3 NA 0 NA
#4 NA 0 NA
#5 NA 0 8
#6 NA 4 9
rleid
数据
library(data.table)
library(dplyr)
df1 %>%
mutate(across(everything(),~ replace(.,. == 0 &
ave(.,rleid(.),FUN = length) >= 4,NA) ))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。