我data.frame在其中一列中有一个字符数据.我想data.frame在同一列中过滤多个选项.有没有一种简单的方法可以做到这一点,我错过了?
示例:
data.frame name =dat
days name
88 Lynn
11 Tom
2 Chris
5 Lisa
22 Kyla
1 Tom
222 Lynn
2 Lynn
Run Code Online (Sandbox Code Playgroud)
我想过滤一下Tom,Lynn例如.
当我做:
target <- c("Tom", "Lynn")
filt <- filter(dat, name == target)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
longer object length is not a multiple of shorter object length
Run Code Online (Sandbox Code Playgroud) 我在C#中有一个LINQ Joining语句,有多个条件.
var possibleSegments =
from epl in eventPotentialLegs
join sd in segmentDurations on
new {
epl.ITARequestID,
epl.ITASliceNumber,
epl.DepartAirportAfter,
epl.AirportId_Origin,
epl.AirportId_Destination
}
equals
new {
sd.ITARequestId,
sd.SliceIndex,
sd.OriginAirport,
sd.DestinationAirport
}
where
epl.DepartAirportAfter > sd.UTCDepartureTime
and
epl.ArriveAirportBy > sd.UTCArrivalTime
select new PossibleSegments{ ArrivalTime = sd.arrivalTime };
Run Code Online (Sandbox Code Playgroud)
加入无法正常工作.我究竟做错了什么?
我想一次过滤两个条件下的数据集.
可能吗?
我想要这样的东西:
mystuff = mystuff.filter(_.isX && _.name == "xyz")
Run Code Online (Sandbox Code Playgroud) 对于我的工作,我必须开发一个小型Java应用程序来解析非常大的XML文件(~300k行)以选择非常具体的数据(使用Pattern),所以我试图对它进行一些优化.我想知道这两个片段之间哪个更好:
if (boolean_condition && matcher.find(string)) {
...
}
Run Code Online (Sandbox Code Playgroud)
要么
if (boolean_condition) {
if (matcher.find(string)) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
更精确:
boolean_condition是boolean使用外部函数在每次迭代时计算的boolean设置为false,我不需要测试匹配的正则表达式谢谢你的帮助
我有以下示例XML结构:
<SavingAccounts>
<SavingAccount>
<ServiceOnline>yes</ServiceOnline>
<ServiceViaPhone>no</ServiceViaPhone>
</SavingAccount>
<SavingAccount>
<ServiceOnline>no</ServiceOnline>
<ServiceViaPhone>yes</ServiceViaPhone>
</SavingAccount>
</SavingAccounts>
Run Code Online (Sandbox Code Playgroud)
我需要做的是使用XPATH过滤'SavingAccount'节点,其中'ServiceOnline'的值为'yes'或'ServiceViaPhone'的值为yes.
XPATH应该给我两行!! 我可以过滤'SavingAccount'节点,其中两个元素值都是,如下面的XPATH示例,但我想要做的是一个或元素值比较???
/SavingAccounts/SavingAccount/ServiceOnline[text()='yes']/../ServiceViaPhone[text()='yes']/..
Run Code Online (Sandbox Code Playgroud) 我有一个小代码问题,它适用于IDLE而不适用于Eclipse,我可以这样写吗:
if fields[9] != ('A' or 'D' or 'E' or 'N' or 'R'):
Run Code Online (Sandbox Code Playgroud)
代替这个:
if fields[9] != 'A' and fields[9] != 'D' and fields[9] != 'E' and fields[9] != 'N' and fields[9] != 'R':
Run Code Online (Sandbox Code Playgroud)
谢谢。
我使用for循环来设置源和目标索引来复制数组中的项目.
for(int src = 0, dst = 8;
src < 8, dst >= 0;
src ++, dst --)
{
arr2[dst] = arr1[src];
}
Run Code Online (Sandbox Code Playgroud)
无论如何都是这样的.
我的问题是退出条件.这里有两个.src < 8和dst >= 0.这些条件是AND-ed(&&)还是OR-ed(||).
为了进一步解释,条件评估如下:
(src < 8) && (dst >= 0)
Run Code Online (Sandbox Code Playgroud)
或者他们是这样评价的?
(src < 8) || (dst >= 0)
Run Code Online (Sandbox Code Playgroud)
或者它是完全不同的东西?我认为合乎逻辑的做法是评估我在上面指定的两种方式中的一种,而不是其他方式.
我想检索条件in WHERE子句中的数据.
这是我的表看起来像:
Name Location Age
----------------------
AAA Bhuj 24
BBB Mumbai 22
CCC Bhuj 18
DDD Bhuj 27
EEE Mumbai 26
Run Code Online (Sandbox Code Playgroud)
我的WHERE条款是:
if location = 'Bhuj' then Age>20 else if location = 'Mumbai' then Age>25
我正在尝试使用此代码来实现此目的:
SELECT * FROM testing
WHERE
CASE Location WHEN 'Bhuj' THEN Age>20
WHEN 'Mumbai' THEN Age>25
END;
Run Code Online (Sandbox Code Playgroud)
此代码适用于MySQL(请参阅此SQLFiddle),但不适用于SQL Server(请参阅此SQLFiddle)并给出以下错误:
'>'附近的语法不正确:SELECT*FROM测试WHERE case位置当'Bhuj'然后Age> 20当'Mumbai'然后Age> 25 end
有什么建议吗?
我有一个如下所示的数据框:
df = pd.DataFrame([
{'id': 123, 'date': '2016-01-01', 'is_local': True },
{'id': 123, 'date': '2017-01-01', 'is_local': False },
{'id': 124, 'date': '2016-01-01', 'is_local': True },
{'id': 124, 'date': '2017-01-01', 'is_local': True }
])
df.date = df.date.astype('datetime64[ns]')
Run Code Online (Sandbox Code Playgroud)
我希望获得is_local2016年初所有ID为True 的列表,但2017年初为False.我开始按ID进行分组:
gp = df.groupby('id')
Run Code Online (Sandbox Code Playgroud)
然后我试过这只是为了过滤这些条件中的第二个(作为一种入门方式),但它返回所有组:
gp.apply(lambda x: ~x.is_local & (x.date > '2016-12-31'))
Run Code Online (Sandbox Code Playgroud)
如何以我需要的方式过滤?
这是一个非常简单的掷骰子程序,它不断掷两个骰子,直到得到双 6。所以我的 while 语句结构如下:
while DieOne != 6 and DieTwo != 6:
Run Code Online (Sandbox Code Playgroud)
出于某种原因,该计划在DieOne获得 6 分后立即结束。DieTwo根本不考虑。
但是如果我将 while 语句中的theand改为 an or,程序就可以完美运行。这对我来说没有意义。
import random
print('How many times before double 6s?')
num=0
DieOne = 0
DieTwo = 0
while DieOne != 6 or DieTwo != 6:
num = num + 1
DieOne = random.randint(1,6)
DieTwo = random.randint(1,6)
print(DieOne)
print(DieTwo)
print()
if (DieOne == 6) and (DieTwo == 6):
num = str(num)
print('You got double 6s in …Run Code Online (Sandbox Code Playgroud) python ×3
filter ×2
arrays ×1
boolean ×1
c# ×1
c++ ×1
case ×1
dplyr ×1
for-loop ×1
if-statement ×1
java ×1
join ×1
linq ×1
optimization ×1
pandas ×1
r ×1
scala ×1
sql ×1
sql-server ×1
where-clause ×1
while-loop ×1
xpath ×1