在R中循环,将使用此公式打印log(x)的值

问题描述 投票:0回答:1

我想编写一个R while循环,它将使用公式打印log(x)的值

log(x) = −0.076 + 0.281x −0.238/(x+0.15)

内置的R函数log10,以及两个值之间的绝对差值,对于x的以下值:x = 0.1, 0.2, . . . , 0.9, 1.0

我的代码如下:

x <- seq(0.1, 1, by = 0.1)
i <- 0
while(i < 10) {
  i <- i + 1
  LOG[i] <- -0.076 + 0.281*x[i] - 0.238/(x[i] + 0.15)
  lg[i] <- log10(x[i])
  ab[i] <- abs(lg[i] - LOG[i])
  cat("i = ", i, "LOG = ", LOG, "log = ", lg, "abs = ", ab, fill = TRUE)
}

但是我有一个错误:

Error: object 'LOG' not found.

我究竟做错了什么?我需要创建对象LOG<-NULL吗?谢谢

r while-loop logarithm
1个回答
2
投票

是的,你需要首先创建对象LOGlgab

但是R有一个很好的功能,称为矢量化,它允许您同时对矢量的每个元素应用一个操作(不需要循环)。代码可以这样:

x <- seq(0.1, 1, by=0.1)
LOG <- -0.076+0.281*x-0.238/(x+0.15)
lg <- log10(x)
ab <- abs(lg - LOG)
© www.soinside.com 2019 - 2024. All rights reserved.