如何解决使用 R 替换向量中的特定数字序列
如何识别 A 中的特定序列(即 1,1,0 和 0,1)并将这些数字替换为 1,0.7,0.3,1 ,分别是(A2)?
简而言之,转换这个:
A<-c(1,1)
进入这个:
A2<-c(1,1)
谢谢!
解决方法
您可以将 slider
与 replace
结合使用:
library(slider)
A <- c(1,1,1)
replace.pattern <- function(x,pattern,replacement) {
idx <- which(unlist(slide(x,.f=function(x) {identical(x,pattern)},.after = length(pattern)-1)))
idx <- unlist(lapply(idx,function(i) i:(i+length(pattern)-1)))
replace(x,idx,replacement)
}
A <- replace.pattern(A,c(1,0),0.7,0.3,0))
A <- replace.pattern(A,c(0,1),1))
A
#> [1] 1.0 1.0 1.0 0.7 0.3 0.0 0.0 0.3 0.7 1.0 1.0 1.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。