在我的一个项目中,我想添加一个功能,例如用户可以在公式中提供
sin (x + pi)/2 + 1
Run Code Online (Sandbox Code Playgroud)
我在我的Java应用程序中使用它
/**
* The formula provided by the user
*/
private String formula; // = "sin (x + pi)/2 + 1"
/*
* Evaluates the formula and computes the result by using the
* given value for x
*/
public double calc(double x) {
Formula f = new Formula(formula);
f.setVar("x", x);
return f.calc();
// or something similar
}
Run Code Online (Sandbox Code Playgroud)
我如何评估数学表达式?
我试图了解使用波浪号运算符和相关函数.我的第一个问题是为什么I()
需要用来指定算术运算符?例如,这2个图产生不同的结果(前者有一条直线,后者有预期的曲线)
x <- c(1:100)
y <- seq(0.1,10,0.1)
plot(y~x^3)
plot(y~I(x^3))
Run Code Online (Sandbox Code Playgroud)
此外,以下两个图也产生预期结果
plot(x^3, y)
plot(I(x^3), y)
Run Code Online (Sandbox Code Playgroud)
我的第二个问题是,也许我一直在使用的例子太简单了,但我不明白~
实际应该在哪里使用.
在下面的最小示例中,我尝试vars
在回归公式中使用字符串的值.但是,我只能将变量名称字符串("v2 + v3 + v4")传递给公式,而不是该字符串的实际含义(例如,"v2"是dat $ v2).
我知道有更好的方法来运行回归(例如lm(v1 ~ v2 + v3 + v4, data=dat)
).我的情况更复杂,我想弄清楚如何在公式中使用字符串.有什么想法吗?
更新以下代码
# minimal example
# create data frame
v1 <- rnorm(10)
v2 <- sample(c(0,1), 10, replace=TRUE)
v3 <- rnorm(10)
v4 <- rnorm(10)
dat <- cbind(v1, v2, v3, v4)
dat <- as.data.frame(dat)
# create objects of column names
c.2 <- colnames(dat)[2]
c.3 <- colnames(dat)[3]
c.4 <- colnames(dat)[4]
# shortcut to get to the type of object my full code produces
vars <- …
Run Code Online (Sandbox Code Playgroud) 我正在尝试逆向工程使用excel中的VBA和单元格中的公式编写的古老程序.有许多细胞的价值分散在各处.有没有快速的方法来检查是否在另一个单元格的论坛中使用了一个单元格(值); 或者如果单元格只是坐在那里什么也不做,以便我可以安全删除/ igonore?提前致谢.
我使用了Ctrl + F查找工具,它似乎确实有效,但我只是想确定是否还有其他更好的方法.
我正在阅读有关R Formula的文档,并试图找出如何使用depmix(来自depmixS4包).
现在,在depmixS4的文档中,样本公式往往是类似的y ~ 1
.对于简单的情况y ~ x
,它定义了输入x和输出y之间的关系,所以我得到它类似于y = a * x + b
,a
斜率在哪里,并且b
是截距.
如果我们回去y ~ 1
,公式就是把我抛弃.是等于y = 1
(y = 1时的水平线)?
要添加位上下文,如果查看depmixs4文档,下面有一个示例
depmix(list(rt~1,corr~1),data=speed,nstates=2,family=list(gaussian(),multinomial()))
我认为总的来说,最终的公式让~ 1
我感到困惑.可以在任何解释~ 1
或者y ~ 1
是什么意思?谢谢你!
我正在尝试使用lm(...)构建回归模型.我的数据集有很多功能(> 50).我不想把我的代码写成lm(output~feature1+feature2+feature3+...+feature70)
.我想知道编写这段代码的简写符号是什么.
我画了一个矩形.我知道它的(x1,y1)左上角和(x2,y2)右下角坐标..我也有绘制矩形的高度h和宽度w.我怎样才能找到中心坐标(x,y)?
我目前正在使用以下公式.
(x,y) = (x2 + x1)/2, (y2+y1)/2
Run Code Online (Sandbox Code Playgroud)
它给出了正确的y坐标,但在x中没有运气.
如何在删除行时创建未变为无效的公式.
例如,在单元格F12中,我具有以下公式:= F11 + D12-E12
这基本上是从上面的单元格中获取值,然后将单元格2的值添加到左侧,并将单元格中的值直接减去左侧.
但是,因为我正在使用实际的单元格地址,所以只要删除一行,下面的所有行都将变为无效.
我如何通过相对位置表达公式(即="1以上"+"2到左" - "1到左")
谢谢.
我想用神经网络进行预测.
创建一些X:
x <- cbind(seq(1, 50, 1), seq(51, 100, 1))
Run Code Online (Sandbox Code Playgroud)
创建Y:
y <- x[,1]*x[,2]
Run Code Online (Sandbox Code Playgroud)
给他们一个名字
colnames(x) <- c('x1', 'x2')
names(y) <- 'y'
Run Code Online (Sandbox Code Playgroud)
制作data.frame:
dt <- data.frame(x, y)
Run Code Online (Sandbox Code Playgroud)
而现在,我得到了错误
model <- neuralnet(y~., dt, hidden=10, threshold=0.01)
Run Code Online (Sandbox Code Playgroud)
在条款中的错误.公式(公式):'.' 在公式中没有'数据'参数
例如,在lm(线性模型)中,这是有效的.
我试图在excel公式中拆分字符串,就像我在许多编程语言中可以做的那样,例如
string words = "some text".split(' ');
Run Code Online (Sandbox Code Playgroud)
问题是我不能确定单元格中有多个单词.如果我尝试使用FIND()
或SEARCH()
函数,#VALUE
如果没有空格则返回.是否有任何简单的方法来分割字符串,以便它返回单个单词(甚至更好,以便它返回第一个单词或所有其他单词)?