所以我只是在玩 rick and Morty API,我从来没有做过有 3 个条件的三元。Mozilla 文档说可以,但它对我不起作用。下面的代码显示了状态为live的角色为绿色,其余为紫色。我希望活着是绿色,死了是红色,未知是紫色。如果有人好奇的话,我正在使用 chakra UI。我究竟做错了什么?
<Badge
colorScheme={ c.status === "Alive" ? "green"
: "unknown" ? "purple"
: "red"
}
>
{c.status}
</Badge>
Run Code Online (Sandbox Code Playgroud) javascript conditional-operator conditional-statements reactjs
当我%in%在重新编码分类变量的条件下使用时,遇到了意外的输出。
当左侧向量的元素为 时NA,条件计算结果为FALSE,而我期望它是NA。
预期的行为是更详细的语句,其中两个==条件由|
dt <- data.frame(colour = c("red", "orange", "blue", NA))
# Expected
dt$is_warm1 <- ifelse(dt$colour == "red" | dt$colour == "orange", TRUE, FALSE)
# Unexpected
dt$is_warm2 <- ifelse(dt$colour %in% c("red", "orange"), TRUE, FALSE)
dt
Run Code Online (Sandbox Code Playgroud)
#> colour is_warm1 is_warm2
#> 1 red TRUE TRUE
#> 2 orange TRUE TRUE
#> 3 blue FALSE FALSE
#> 4 <NA> NA FALSE
Run Code Online (Sandbox Code Playgroud)
这在重新编码分类变量时非常没有帮助,因为它会默默地填充缺失值。为什么会发生这种情况?是否有任何不涉及列出所有==条件的替代方案?(想象一下colour包含三十个可能的级别)。
我很想知道是否有人知道在 Terraform 中使用条件计数语句的更好替代方法。我所说的“条件计数语句”是指根据变量输入等条件,计数将计算以创建 0 或 1 个资源的语句。
一个简单的例子:
resource "xxxxxxxx" "example" {
count = var.example != null ? 1 : 0
}
Run Code Online (Sandbox Code Playgroud)
在这里,只有当 var.example 有值(不为空)时才会创建资源,否则不会创建。
条件计数在实践中通常工作正常,但有时在比上述更复杂的用途中,它会带来在 Terraform Plan 期间出现错误的风险,因为它无法评估预应用计数的结果。
The "count" value depends on resource attributes that cannot be determined
until apply, so Terraform cannot predict how many instances will be created.
To work around this, use the -target argument to first apply only the
resources that the count depends on.
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法可以达到在 Terraform 中按条件创建资源的相同效果?
我想计算每组5天内的累计总和。
df <- data.frame(
date = ymd( c( "2022-01-02","2022-01-03","2022-01-05","2022-01-07","2022-01-11","2022-01-14","2022-01-17","2022-01-18","2022-01-24","2022-01-27","2022-01-01","2022-01-04","2022-01-04","2022-01-08","2022-01-12","2022-01-14","2022-01-19","2022-01-24","2022-01-25","2022-01-28")),
group = c("A","A","A","A","A","A","A","A","A","A","B","B","B","B","B","B","B","B","B","B"),
number = c(10,30,20,50,30,50,40,50,30,50,55,10,30,20,50,30,40,30,40,30))
Run Code Online (Sandbox Code Playgroud)
下面是我的数据框的一个小样本,包括累积总和列应返回的内容。任何帮助,将不胜感激。谢谢。
date group number cumsum(s)
2022-01-02 A 10 10
2022-01-03 A 30 40
2022-01-05 A 20 60
2022-01-07 A 50 110
2022-01-11 A 30 80
2022-01-14 A 50 80
2022-01-17 A 40 90
2022-01-18 A 50 140
2022-01-24 A 30 30
2022-01-27 A 50 80
2022-01-01 B 55 55
2022-01-04 B 10 65
2022-01-04 B 30 95
2022-01-08 B 20 60
2022-01-12 B 50 70 …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据另一个数据集的条件和分组折叠数据集。我当前的数据框看起来像这样
对于每个“国会”中的每个“RollNo”,我想要一个新变量,指示同一州的两名参议员是否一起投票(1,0)并且属于同一政党(1,0)
| 国会 | 森 | 卷号 | 状态 | 投票 | 派对 |
|---|---|---|---|---|---|
| 106 | 杰伊 | 1 | 方舟 | 1 | 代表 |
| 106 | 玛丽 | 1 | 方舟 | 1 | 民主党 |
| 106 | 账单 | 2 | 十 | 2 | 民主党 |
| 106 | 凯文 | 2 | 十 | 1 | 民主党 |
| 108 | 起诉 | 1 | 矿石 | 2 | 代表 |
| 108 | 莎莉 | 1 | 矿石 | 2 | 代表 |
| 108 | 丽莎 | 3 | 斯达克 | 1 | 代表 |
| 108 | 一分钱 | 3 | 斯达克 | 2 | 代表 |
| 109 | 杰伊 | 1 | 密歇根州 | 1 | 民主党 |
| 109 | 玛丽 | 1 | 密歇根州 | 9 | 代表 |
| 109 | 鲁迪 | 5 | 卡尔 | 1 | 民主党 |
| 109 | 奈尔斯 | 5 | 卡尔 | 1 | 民主党 … |
我的实习生刚刚联系我并询问为什么在 Python 中False == False != True求值为 to
True,而false在 JavaScript 中求值。
我认为那个语句是false/ False,无论你怎么解决它,它都会False在我的脑海中吐出来。
详细情况如下:
given:
False == False != True
#Case 1:
False == False => True
True != True => False
#Case 2:
False != True => True
False == True => False
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗?我尝试了 JS,!= and ===但由于类型相同,因此它保持相同的输出。
可能这是一个愚蠢的问题,但我没有看到问题(虽然假设一定有一个):
我写了一些代码;这是摘录:
use Getopt::Std;
my %options;
if (getopts('hty', \%options)) {
my @opts = split(//, 'hty');
@options{@opts} = (1, 1, 1)
if (scalar (grep { defined } @options{@opts}) == 0);
something()
if ($options{'h'});
#...
}
Run Code Online (Sandbox Code Playgroud)
代码的目的是如果三个选项均未设置,则将所有三个选项定义为已设置。然而,即使设置了一个选项(),代码似乎也会执行-h,但最终值也不是我所期望的。请参阅调试器会话的以下片段:
DB<2> x %options
0 'h'
1 1
####: so `-h` was set
DB<3> n
main::(otptest.pl:298): if (scalar (grep { defined } @options{@opts}) == 0);
DB<3> n
main::(otptest.pl:297): @options{@opts} = (1, 1, 1)
###: surprisingly the assignment seems to be executed as well
DB<3> …Run Code Online (Sandbox Code Playgroud) 这段代码是否会等待生产者内部的互斥体void push(data)?
如果是这样,我该如何解决这个问题呢?
boost::mutex access;
boost::condition cond;
// consumer
data read()
{
boost::mutex::scoped_lock lock(access);
// this blocks until the data is ready
cond.wait(lock);
// queue is ready
return data_from_queue();
}
// producer
void push(data)
{
//<--- will a block ever happen here?
boost::mutex::scoped_lock lock(access);
// add data to queue
cond.notify_one();
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个(;;)循环的线程池,我从这个池中的一个线程调用read().然后我处理它上面的数据.我用一些外部线程调用push().我的问题是,外部线程是否可以阻止其对push(数据)的调用?
我是Objective C和Mac开发的新手......似乎我可以在我的应用程序中使用Posix线程API ..这是推荐的方法吗?或者他们应该使用的一些Apple API用于互斥,条件变量和线程?
我应该补充一点,我正在为iPhone开发.
我想准确添加我想要做的事情.基本上,CoreLocation是异步的...你告诉它开始更新你,然后它只是定期调用你的更新方法...
我遇到的问题是我需要另一个线程来阻止,直到发生更新...如何进行主应用程序线程阻塞,直到至少发生一次CoreLocation更新?他们的NSConditionVariable?:)
我有一个Reservation模型,我正在寻找三个领域.在container_id必须始终self.id但是confirmed和auto_confirmed只有一个需要为真.我有以下但它没有执行我需要的:
Reservation.find(:all,
:conditions => ['container_id = ? AND confirmed = ? OR auto_confirm = ?',
self.id, true, true,])
Run Code Online (Sandbox Code Playgroud)
我应该怎么改变这个?