标签: multiple-conditions

if 语句中的多个条件位于逻辑运算符两侧

我正在尝试在逻辑运算符两侧的 if 语句中使用多个参数。我首先从 || 开始 运算符,按预期工作:

var a = 'apple', b = 'banana', c = 'cherry';

if (a == 'banana' || a == 'apple' || b == 'banana' || b == 'apple') {
    console.log('example 1') // returns
}

if ((a || b) == 'banana' || (a || b) == 'apple') {
    console.log('example 2') // returns
}

if (a == ('apple' || 'banana') || b == ('apple' || 'banana')) {
    console.log('example 3') // returns
}

if ((a || b) == ('apple' …
Run Code Online (Sandbox Code Playgroud)

javascript if-statement multiple-conditions logical-operators

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

如何修复具有多个条件的while循环返回错误

我编写了代码,要求用户键入"2012"或"2013"​​.然后我进行while循环检查以查看用户是否键入2012或2013.

输入有效年份的请求应该继续,直到用户输入有效数字.但是,我不断收到意外"{"发生的错误.我无法找到为什么这会在我的代码中产生这样的错误.

这是代码:

yr_function <-function(){
   year_of_data <- as.numeric(readline("Is the year of concern 2012 or 2013? >>> "))
}

year_of_data = 0
While((year_of_data != 2012) | (year_of_data != 2013)){
    yr_function
if(year_of_data != (2012 | 2013),print("You must type either 2012 or 2013")
}
Run Code Online (Sandbox Code Playgroud)

生成错误读取:

Error: unexpected '{' in "While((year_of_data != 2012) | (year_of_data != 2013)){"
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.

r while-loop multiple-conditions

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

括号中两个条件都为真的SQL

SELECT
    *
FROM 
    TableName
WHERE
    Column1 = 'X'
    AND Column2 = 'Y'
    AND (Column3 != 'D' AND Column4 != 'D') -- Want to apply this filter ONLY if both conditions are true
Run Code Online (Sandbox Code Playgroud)

如何编写第三个过滤器,以便仅在两个都为真时才应用。目前,方括号没有什么区别,但我需要在方括号中表达以将其视为单个条件

例:

Column1     Column2     Column3     Column4
X           Y           D           L   
X           Y           L           L   
X           Y           L           D   
X           Y           D           D   -- want to remove this line
Run Code Online (Sandbox Code Playgroud)

结果应为:

Column1     Column2     Column3     Column4
X           Y           D           L   
X           Y           L           L   
X           Y           L           D   
Run Code Online (Sandbox Code Playgroud)

sql brackets multiple-conditions

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

词典理解列表 - 多个条件

我有一个列表的多个条件的问题:

listionary = [{u'city': u'paris', u'id': u'1', u'name': u'paul'},
              {u'city': u'madrid', u'id': u'2', u'name': u'paul'},
              {u'city': u'berlin', u'id': u'3', u'name': u'tom'},
              {u'city': u'madrid', u'id': u'4', u'name': u'tom'}]
Run Code Online (Sandbox Code Playgroud)

我尝试同时删除同时满足这两个条件的项目.

[elem for elem in listionary if (elem.get('name')!='paul' and elem.get('city')!='madrid')]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果满足至少一个条件,则删除元素,我尝试以多种方式进行,任何想法?

预期产量:

[{u'city': u'paris', u'id': u'1', u'name': u'paul'}
{u'city': u'berlin', u'id': u'3', u'name': u'tom'}
{u'city': u'madrid', u'id': u'4', u'name': u'tom'}]
Run Code Online (Sandbox Code Playgroud)

我想删除符合这两个条件的元素.

python list-comprehension list multiple-conditions

4
推荐指数
2
解决办法
145
查看次数

具有多个条件的python lambda列表过滤

我对使用lambda过滤列表的理解是,过滤器将返回列表中为lambda函数返回True的所有元素.在这种情况下,对于以下代码,

inputlist = []
inputlist.append(["1", "2", "3", "a"])
inputlist.append(["4", "5", "6", "b"])
inputlist.append(["1", "2", "4", "c"])
inputlist.append(["4", "5", "7", "d"])

outputlist = filter(lambda x: (x[0] != "1" and x[1] != "2" and x[2] != "3"), inputlist)
for item in outputlist: print(item)
Run Code Online (Sandbox Code Playgroud)

输出应该是

['4', '5', '6', 'b']
['1', '2', '4', 'c']
['4', '5', '7', 'd']
Run Code Online (Sandbox Code Playgroud)

但我得到的输出是

['4', '5', '6', 'b']
['4', '5', '7', 'd']
Run Code Online (Sandbox Code Playgroud)

如果我使用的话,我会得到预期的输出

outputlist = filter(lambda x: (x[0] != "1" or x[1] != "2" or x[2] != "3"), inputlist) …
Run Code Online (Sandbox Code Playgroud)

python lambda list filter multiple-conditions

4
推荐指数
3
解决办法
2万
查看次数

SQL排除匹配所有多个条件的行

我目前有一个查询合并两个表来创建一个新的分析表.在尝试绘制图表进行演示后得到一些有趣的结果后,我了解到其中一些是从未清理过的假数据.我已经能够识别导致问题的数据,并且为了时间的推移,希望在查询中排除它,以便我可以继续进行分析.

这些假数据符合所有这些标准:

  • rate_type =标准
  • client_net_cleared = 0
  • 程序是空白的(不是空)

我在SELECT中用CASE语句识别了这些,但意识到要使用它,我必须做另一个表,查询这一个中的所有内容,减去基于CASE语句确定满足上述条件的内容.必须有一个比这更好的解决方案.

我目前正在尝试将这些作为WHERE语句的一部分排除,但是阅读其他问题主题并发现WHERE在管理多个子条件方面不是很好.

是)我有的:

SELECT *
, CASE WHEN tad.rate_type = 'Standard'
    AND tad.client_net_cleared = '0'
    AND program= '' THEN 1
    ELSE '0'
    END AS noise

FROM tableau.km_tv_ad_data_import tad
JOIN tableau.km_tv_ad_report ga
    ON ga.session_timestamp >= tad.timestamp - INTERVAL '4 minute'
    AND ga.session_timestamp <= tad.timestamp + INTERVAL '5 minute'
    AND ga.session_timestamp != tad.timestamp

WHERE tad.timestamp >= '2016-09-01'
AND (tad.rate_type != 'Standard'
    AND tad.client_net_cleared != '0'
    AND tad.program != '')

GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
Run Code Online (Sandbox Code Playgroud)

样本数据集:

 timestamp …
Run Code Online (Sandbox Code Playgroud)

mysql sql-server navicat multiple-conditions where-in

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

postgresql 左连接多个条件

我仍然是 PostgreSQL 的 NB - 任何人都可以帮助解决这个查询:

select distinct j.id, tt.title, m_scopus.provider_id
from journal j   
join temporal_title "tt"   
     on (j.id = tt.journal_id and tt.list_index = 0) 
left join journal_metrics "jm_scopus"  
     on (jm_scopus.journal_id = j.id) 
left join metrics "m_scopus" 
     on (m_scopus.id = jm_scopus.metrics_id 
     and m_scopus.source_id = 235451508 
     and m_scopus.year_integer = 2017)
Run Code Online (Sandbox Code Playgroud)

问题是我得到了带有空“provider_id”的行,而我不想要它们:

journal_id     title                    provider_id
263290036      German Journal of...     scopusJournalsMetricsProvider
263290036      German Journal of...     NULL
72418282       Europa azul              NULL    
207412571      IAC International...     NULL
Run Code Online (Sandbox Code Playgroud)

第 1、3 和 4 行都可以,但第 2 行不行,因为我需要的信息是provider_id(如果存在),如果不存在则为 NULL。

postgresql left-join multiple-conditions junction-table

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

Ruby - 在一行上使用多个条件

所以,我遇到了这个问题,我希望在例程继续之前检查三个条件,但它不断抛出语法错误,说它不期望多个条件.现在,我知道我见过其他人使用如下行:

if x > 100 && x % 2 == 1
    #Do something
end
Run Code Online (Sandbox Code Playgroud)

但是,无论出于何种原因,这条线:

if (letters.eql? letters.upcase && dash.eql? '-' && numbers.to_i.to_s.eql? numbers)
Run Code Online (Sandbox Code Playgroud)

惹错了很多错误.这与".eql"有关吗?还是我还没有遇到过与Ruby无关的东西?

以下是其余代码供参考:

print "Enter license plate: ";
input = gets.strip;
if input.length == 8
    letters = input[0,2];
    dash = input[3];
    numbers = input[4,7];
    if (letters.eql? letters.upcase && dash.eql? '-' && numbers.to_i.to_s.eql? numbers)
        puts "#{input} is a valid license plate."
    else
        print "All valid license plates are three (3) uppercase letters, followed by a dash (-), followed …
Run Code Online (Sandbox Code Playgroud)

ruby if-statement multiple-conditions conditional-statements

3
推荐指数
2
解决办法
2万
查看次数

如果另一个数据帧中存在组合,则R检查行的行

我试着找出这个问题的答案但没有运气.我在R中有两个数据框(df1和df2),除了两列,一个人数字(pnr)和一个药物名称(名称)之外,有两个不同的信息.在df1中行的行,我想检查,如果pnr和name的组合存在于df2中的某处.如果存在这种组合,我想在df1的另一列中显示"是".如果不是"不".

df1
pnr|drug|...|check
---|----|---|-----
1  | 1  |...| no
1  | 2  |...| yes
2  | 2  |...| yes
3  | 2  |...| no
.....

df2
pnr|drug|...|
---|----|---|
1  | 2  |...|
2  | 2  |...|
....
Run Code Online (Sandbox Code Playgroud)

例如,我想检查,如果行组合pnr = 1&drug = 1存在于df2(否),pnr = 1&drug = 2(是)等等,然后在其中放置"是"或"否"检查df1中的列

for没有运气就试过以下声明.它确实在"检查"列中放置了"是或否",但它没有正确执行

for(index in 1:nrow(df1)){
   if((df1[index,]$pnr %in% df2$pnr)&(df1[index,]$name %in% df2$name)){
   check_text="yes"}else{check_text="no"}
   df1$check=check_text
}
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,我应该使用apply,但我无法弄明白.你们有没有想法,如何解决这个问题?`

真诚的再见

r multiple-conditions dataframe

3
推荐指数
2
解决办法
5037
查看次数

ID累计滞后

我想通过ID创建一个累加的总和。但是,它不应将属于正在计算的行的值相加。

我已经尝试过cumsum。但是,我不知道如何添加一条语句,该语句指定不添加进行求和的行的数量。我要查找的结果列是名为“ sum”的第三列。

例如,对于ID 1,第一行是sum = 0,因为不应添加该行。但是,对于ID 1和第2行,sum = 100,因为第2行之前的ID 1的数量为100,依此类推。

   id amount sum
1:  1    100   0
2:  1     20 100
3:  1    150 120
4:  2     60   0
5:  2    100  60
6:  1     30 270
7:  2     40 160 
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

  df[,sum:=cumsum(amount),
      by ="id"] 

  data: df <- data.table(id = c(1, 1, 1, 2, 2,1,2), amount = c(100, 20, 
  150,60,100,30,40),sum=c(0,100,120,0,60,270,160) ,stringsAsFactors = 
  FALSE)
Run Code Online (Sandbox Code Playgroud)

datatable r multiple-conditions cumulative-sum

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