我希望 Excel 在使用 VBA 进行查找和替换时,停止用等效的科学记数法替换包含 E 的完美字符串。
我尝试通过使用ReplaceFormat.NumberFormat = "@"来强制它无济于事。
这是说明我的问题的代码:
Sub testsub()
ActiveSheet.Columns("A:A").NumberFormat = "@"
fnd = "2"
rplc = "39456E10"
Range("A1").Value = fnd
Range("A2").Value = rplc
Application.ReplaceFormat.NumberFormat = "@"
ActiveSheet.Cells.Replace what:=fnd, Replacement:=rplc, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=True
End Sub
Run Code Online (Sandbox Code Playgroud)
这就是结果
关于如何处理R中的无限递归,我找不到任何建议.我想以最一般的方式说明我的问题,以便其他人可以从中受益.随意编辑它.
我曾经运行过双循环
for (k in 1:n){ for (i in 1:m){
f[i,,k] <- an expression that depends on g[i-1,,k]
g[i,,k] <- a mixture of g[i-1,,k] and f[i,,k]}}
Run Code Online (Sandbox Code Playgroud)
这运行正常,但现在我希望找到最符合我标准的k.所以我决定将它变成一个函数,以便我以后可以优化或取消它.我写了类似的东西:
f <- function(i,k){an expression that depends on g(i-1,k)}
g <- function(i,k){an expression that depends on g(i-1,k) and f(i,k)}
Run Code Online (Sandbox Code Playgroud)
我认为这两个问题是相似的,但令我惊讶的是,我得到了无限的递归错误.
我读到了关于最大记忆的内容,但我确信有一种更美观的方式.
我可重复的例子:
library(memoise)
gradient <- function(x,y,tau){if (x-y > 0) {- tau} else {(1-tau)}}
aj <- c(-3,-4,-2,-3,-5,-6,-4,-5,-1,rep(-1,15))
f <- function(x,vec){sum(x^vec)-1}
root <- uniroot(f, interval=c(0,200), vec=aj)$root
memloss<-function(i,k){if (i==1) {c(rep(0,24))} else if (i <= 0 | k …Run Code Online (Sandbox Code Playgroud) 假设一个向量:
vec = c(NA,NA,1,NA,NA,NA,1,NA,NA,0,NA,NA,0,NA,NA,0,NA,NA,1,NA,NA,1,NA,NA,0,NA,0)
Run Code Online (Sandbox Code Playgroud)
我想得到:
vec = c(NA,NA,1,NA,NA,NA,NA,NA,NA,0,NA,NA,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,0,NA,NA)
Run Code Online (Sandbox Code Playgroud)
我尝试过使用 if 来检查该值是否等于之前的非 NA 的 for 循环,但是当重复多次时它不起作用。
将向量中的重复项删除到下一个值 也不起作用,因为我想保留我的 NA。