r - 如何在同一函数中使用 ifelse / lag / mutate 替换值和单词?
问题描述
我有类似的数据。
v1 <- c("Fail", 20, 30, "Out", NA, 32, 33, 10)
v2 <- c(10, NA, NA, "Out", "Fail", 34, 35, 30)
df <- data.frame(v1,v2)
我也需要转换这个数据框。这样'words'
orNA
就是前面的信息,或者如果没有前面的信息,需要后面再去取信息。
我如何才能使用现代编程实际做到这一点R
?根据这个链接,我正在做这样的事情。
df <- df %>% mutate(v11 = ifelse(v1 %in% "Fail", lag(),
ifelse(v1 %in% "Out", lag()),
ifelse(is.na(v1) %in% lag(), v1)))
解决方案
解决方案来自zoo
,na.locf
df[which(df=="Fail" | df=='Out')]='NA'
zoo::na.locf(zoo::na.locf(df),fromLast=T)
v1 v2
1 20 10
2 20 10
3 30 10
4 30 10
5 30 10
6 32 34
7 33 35
8 10 30
推荐阅读
- python-3.x - 在 pycharm 中为每次运行显示来自 mlflow 的度量值
- python - 如何使用 xlrd 将 excel 转换为嵌套的 JSON?
- javascript - JSON Parse 错误:带有 localStorage 的意外标识符“未定义”
- npm - 如何在我的 package.json 中添加自定义脚本
- api - 使用 Passport Local 登录向 POST 请求返回 400 错误(使用 Axios、MERN 和 React Hooks)
- r - 如何获得完整的 R 控制台输出?
- azure - 带有 Terraform Azure VM 扩展的 PowerShell 多行字符串
- python - 我想退出一个类,然后在 python 中运行一些代码
- pixi.js - pixjs 图形颜色渗色问题
- c - 在它们之间不中断地复制和重置内存