我正在学习和开发一个闪亮的小应用程序。太棒了!
我有一个返回 true/false 的 checkboxInput,我需要将其转换为数字 1/0 并在表内的公式中使用它。我的现实生活示例有点复杂,但我在下面提取了一个 stackoverflow-life 示例。帮助表示感谢!
在下面的应用程序中,用户首先选择要播放的 checkboxInput,然后在左侧面板中输入一个数字。主面板显示输入数字、输出数字(本例中输入的平方)和 checkboxInput 的“状态”(为 True 或 False)的表格。
我想返回 1 或 0 而不是 True 或 False。
在现实生活中,我的左侧面板采用数字列表以及真/假陈述,其中公式返回要在表中显示的数字。True/False 语句就像虚拟变量。
这是 ui.R
# ui.R
library("shiny")
# Define UI for slider demo application
shinyUI(
pageWithSidebar(
# Title
headerPanel("Input-Output Shiny App")
,
# User Input in sidebar panel
sidebarPanel(
# Yes/No
wellPanel(
checkboxInput("play", "Do you want to play?", FALSE)
,
conditionalPanel(
condition="input.play==true"
,
numericInput("myinput", "My Input:", 0)
)#end conditionalPanel
)#end wellPanel
)# end sidebarPanel
,
# …Run Code Online (Sandbox Code Playgroud) 我试图找到一种格式化数字函数的方法,通过拆分变量并在它们之间添加数学运算符。就像是
y <- data.frame(1:5, 2:6, 3:7,4:8)
names(y) <- c('a', 'b', 'c', 'd')
Run Code Online (Sandbox Code Playgroud)
并将其转化为如下所示的公式:
~a+b+c+d
Run Code Online (Sandbox Code Playgroud)
我试过:
x <-c(y)
z <- paste('a', 'b', 'c', 'd', sep='+')
as.numeric(as.character(z))
Run Code Online (Sandbox Code Playgroud)
它不起作用,我很确定这是因为我正在使用的“字符”分隔符。我该怎么做呢?
我正在尝试构建一个非常简单的网格。我有一个盒子:
box_size = 50;
lb = 10.;
Point(1) = {-box_size/2, -box_size/2, -box_size/2, lb};
Point(2) = {box_size/2, -box_size/2, -box_size/2, lb};
Point(3) = {box_size/2, box_size/2, -box_size/2, lb};
Point(4) = {-box_size/2, box_size/2, -box_size/2, lb};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line Loop(5) = {1, 2, 3, 4};
Plane Surface(6) = {5};
Extrude {0, 0, box_size} {
Surface{6};
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,gmsh 很乐意对其进行 (3D) 网格划分。问题是我要确保盒子内的某些点是节点。所以我的问题是,我如何确保这些点,比如这些
lc = 10;
Point(5) = {7.150548, 1.000000, -6.990684, lc};
Point(6) = …Run Code Online (Sandbox Code Playgroud) 我需要使用梯度函数(由公式编程,而不是数字)以数值方式计算函数的Hessian矩阵。像或使用数值梯度计算粗麻布的包不能满足我的需求。我需要在包中内部执行的事情(没有可以调用的单独方法),但是处理我的优化任务的唯一方法在包中很好地实现并传递其最佳值以获得粗麻布对于我的程序来说太昂贵了。numDerivrootSolveoptimnloptoptim
所以我需要一些不使用数字梯度来计算 Hessian 的函数(例如,请参阅这些公式https://neos-guide.org/content/difference-approximations)。我无法制作这样的函数,因为我不明白如何选择h我的函数非常敏感的参数(增量)。我可以在 R 中找到这样的函数或以某种方式从optim包中检索它吗?或者有人至少可以解释如何选择误差最小化值,h然后我自己发布这个函数?
我有很多末尾有数字的字符串。数字可以是任意大小,例如:
myvar123
mysecondvar3
mythirdvar219107
Run Code Online (Sandbox Code Playgroud)
字符串甚至可以在名称内部包含数字,而不仅仅是在末尾。例如:
my2varable123
some123variable9480395
Run Code Online (Sandbox Code Playgroud)
我需要用占位符替换末尾的任何数字。(不是 varname 内的那些。)
例如:
my2varable123 should become: my2variable%placeholder%
some123variable9480395 should become: some123variable%placeholder%
Run Code Online (Sandbox Code Playgroud)
我想到的唯一方法是使用 .right() 遍历字符串并删除字符(如果它是数字),直到找到第一个非数字字符。然后最后附加占位符,但对于一个相当简单的问题来说,这看起来需要大量工作。
有一个更好的方法吗?
我正在尝试理解 PHP 中的数字字符串。我有以下代码:
var_dump(5 * "10 abc");
var_dump(is_numeric("10 abc"));
Run Code Online (Sandbox Code Playgroud)
这给了我输出:
int(50)
bool(false)
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为字符串“10 abc”似乎被解释为第一个表达式中的数字字符串(因此 int(50) 输出并且没有关于使用非数字值的警告),但是当通过 is_numeric() 运行时函数它返回 false,表明它实际上不是数字字符串。
我花了一些时间查看文档来理解这种行为,但找不到任何具体的答案,有人可以帮助解释是什么导致了这种行为吗?
我知道 PHP 8.0.0 对数字字符串的含义进行了一些更改,但这是我现在正在尝试理解的 PHP 7.1.33。
舍入模式HALF_EVEN应该将以 5 结尾的(十进制)数字舍入为最接近的甚至不太精确的数字(例如,4.5 舍入为 4,而 5.5 舍入为 6)。
现在看来Java的划分BigDecimal并不遵守这个规则;以下代码将其四舍五入为 0.45 至 0.5:
import java.math.*;
class Round {
public static void main(String[] args) {
BigDecimal five = BigDecimal.valueOf(5);
BigDecimal eleven = BigDecimal.valueOf(11);
BigDecimal x = five.divide(eleven, 1, RoundingMode.HALF_EVEN);
System.out.println(x);
}
}
Run Code Online (Sandbox Code Playgroud)
输出0.5
请注意,5/11 = 0.4545454545...因此,当查看小数点后的前两位数字 0.45 时,我们显然希望看到四舍五入到最接近的偶数邻居,即 0.40,而不是 0.50。
谁能解释一下吗?
(如果重要的话,我正在运行java -version= openjdk版本“11.0.15”2022-04-19)
BigDecimal five = new BigDecimal("5");
BigDecimal eleven = new BigDecimal("11");
BigDecimal x …Run Code Online (Sandbox Code Playgroud) 我有一个包含多列的数据框df,我想清理其中的一些定价列。数据框如下所示:
Col1(char) Col2(char) Col3(char) Col4(char)
CST $ 128,412.00 $ 0.034 +149.628%
FSD $ 138,232.40 $ 0.023 +124.244%
SDD $ 112,234.45 $ 0.023 -123.324%
Run Code Online (Sandbox Code Playgroud)
但是,我希望输出如下所示:
Col1(char) Col2(num) Col3(num) Col4(num)
CST 128412.00 0.034 1.49628
FSD 138232.40 0.023 1.24244
SDD 112234.45 0.023 -1.23324
Run Code Online (Sandbox Code Playgroud)
如何尽可能优雅地将 Col2 - Col4 转换为数字列?谢谢你!
如果已经有一些类似的问题,请通过评论告诉我。
当我们通常尝试区分奇数和偶数时,我们可以尝试以下 C++ 代码。
int main() {
int n=10;
for(n; n>0; n--){
if(n%2==0) std::cout<< "even" << '\n';
if(n%2==1) std::cout<< "odd" << '\n';
}
}
Run Code Online (Sandbox Code Playgroud)
我确信超过 99% 的本科生,甚至专业人士,都会使用条件“if (n%2==0)...else”来区分奇数和偶数。
然而,当数字范围足够大时,在我看来,“if (n%2==0)...else”方法可能效率很低。让我来解释一下原因。
int main() {
int n=100000;
for(n; n>0; n--){
if(n%2==0) std::cout<< "even" << '\n';
if(n%2==1) std::cout<< "odd" << '\n';
}
}
Run Code Online (Sandbox Code Playgroud)
当整数“n”很小时,除以每个小于它的正整数并不是什么大问题。
但是,当它变大时,除了分割之外,难道没有其他更有效的方法吗?
我们人类通常不会计算模 2 来知道“10^1000 + 1”是奇数还是偶数。对于“10^1000 + 2”、“10^1000 + 3”等也是如此。我们只需查看整数的最后一位就可以知道答案。
我不是计算机科学方面的专家,所以尽管我不确定这些信息,但我听说机器对二进制数比人类友好得多。如果是这样,计算机是否可以仅通过查看输入的最后一位数字(无论是 0 还是 1)来更快地区分奇数和偶数?
如果对此有一些直接的答案,我相信许多中级数值算法可以从答案中受益。期待有人的帮助。
谢谢。
在 Postgresql 更新 v15 之后,我意识到即使我有一个接受 UUID 数据类型的列,每当我尝试将 UUID 数据插入表中时,它也会抛出类似的错误。
脚本:
INSERT INTO public.testing(uuid, rating) VALUES (${uuid}, ${rating});
Run Code Online (Sandbox Code Playgroud)
错误:
运行查询错误时出错:在“45c”或附近的数字文字后尾随垃圾
Postgresql 15 发行说明:
防止数字文字具有非数字尾随字符 (Peter Eisentraut)
这个问题有什么解决办法吗?或者有另一种数据类型允许将 UUID 存储到我的表中?