gpt4 book ai didi

R:将过滤条件列表传递到数据框中

转载 作者:行者123 更新时间:2023-12-02 15:19:23 26 4
gpt4 key购买 nike

我有一个像这样的数据框:

   Symbol Yield    PE    Growth  
1 ABBV 3.46 18.80 5.00
2 ABM 2.24 21.18 3.33
3 ABT 2.26 23.65 10.85
4 ADM 1.91 22.29 9.08
5 ADP 2.46 25.83 8.57
6 AFL 2.25 9.26 5.97
7 ALB 1.44 13.53 13.15
8 ANDE 1.02 19.59 5.74
9 AOS 1.29 25.11 9.99
10 APD 2.41 25.08 2.53
11 ARLP 5.50 11.69 1.99
12 AROW 3.83 14.68 1.01
13 ARTNA 3.67 23.91 3.20
14 ATNI 1.68 3.14 7.50
15 ATO 2.97 18.59 1.72

还有一长串 bool 过滤条件,比如

conditions = c('Symbol in `ABM', 'Growth > 1.2', 'Yield within (2 3)', 'PE>3',....)

有没有一种方法可以使用 base R 或 dplyr 来做类似的事情

for (condition in conditions) {    
cond = expression(condition)
dataframe = dataframe[which(cond),]}

这样我就可以不断地向条件列表中添加内容,而不是手动粘贴它们并在索引中使用多个 &?

输出应该是

filter(dataframe, Symbol in 'ABM' & Growth > 1.2 & Yield within (2 3) & PE>3 &...)

最佳答案

基础 R 版本:

conditions <- with(dat, list(Symbol %in% "ABM", Growth > 1.2, Yield > 2, Yield < 3, PE > 3))
dat[Reduce(`&`, conditions ),]
# Symbol Yield PE Growth
#2 ABM 2.24 21.18 3.33

关于R:将过滤条件列表传递到数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com