我正在尝试在逻辑运算符两侧的 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
我编写了代码,要求用户键入"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)
任何帮助将非常感激.
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) 我有一个列表的多个条件的问题:
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)
我想删除符合这两个条件的元素.
我对使用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) 我目前有一个查询合并两个表来创建一个新的分析表.在尝试绘制图表进行演示后得到一些有趣的结果后,我了解到其中一些是从未清理过的假数据.我已经能够识别导致问题的数据,并且为了时间的推移,希望在查询中排除它,以便我可以继续进行分析.
这些假数据符合所有这些标准:
我在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) 我仍然是 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。
所以,我遇到了这个问题,我希望在例程继续之前检查三个条件,但它不断抛出语法错误,说它不期望多个条件.现在,我知道我见过其他人使用如下行:
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
我试着找出这个问题的答案但没有运气.我在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,但我无法弄明白.你们有没有想法,如何解决这个问题?`
真诚的再见
我想通过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) r ×3
if-statement ×2
list ×2
python ×2
brackets ×1
dataframe ×1
datatable ×1
filter ×1
javascript ×1
lambda ×1
left-join ×1
mysql ×1
navicat ×1
postgresql ×1
ruby ×1
sql ×1
sql-server ×1
where-in ×1
while-loop ×1