小编use*_*466的帖子

查找和替换强制科学记数法格式

我希望 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)

这就是结果

在此处输入图片说明

excel vba

5
推荐指数
1
解决办法
180
查看次数

理解并避免无限递归R.

关于如何处理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)

recursion r infinite

4
推荐指数
1
解决办法
8579
查看次数

删除向量中的重复项但保留顺序

假设一个向量:

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。

r vector

3
推荐指数
1
解决办法
777
查看次数

标签 统计

r ×2

excel ×1

infinite ×1

recursion ×1

vba ×1

vector ×1