julia dataframe-按值列表对列进行子集设置

julia dataframe-按值列表对列进行子集设置,dataframe,subset,julia,data-manipulation,Dataframe,Subset,Julia,Data Manipulation,是否可以使用值列表来对dataframe进行子集划分,例如 using DataFrames df = DataFrame(A = 1:10, B = 2:2:20) 10x2 DataFrame | Row | A | B | |-----|----|----| | 1 | 1 | 2 | | 2 | 2 | 4 | | 3 | 3 | 6 | | 4 | 4 | 8 | | 5 | 5 | 10 | ... ... 如果列表很小,可以通过 df

是否可以使用值列表来对dataframe进行子集划分,例如

using DataFrames

df = DataFrame(A = 1:10, B = 2:2:20)

10x2 DataFrame
| Row | A  | B  |
|-----|----|----|
| 1   | 1  | 2  |
| 2   | 2  | 4  |
| 3   | 3  | 6  |
| 4   | 4  | 8  |
| 5   | 5  | 10 |
...
...
如果列表很小,可以通过

df[df[:A] .in [3,4], :]

但我想知道是否有办法为大量的值列表做到这一点

上述公认的答案不再适用了。
df[(df[:A] .== 3) |  (df[:A] .== 4), :]
因此,2019年的工作情况如下:

julia> df = DataFrame(x = 1:3:30, y = [2, 1, 2,1,3,4,5,3,3,3])
10x2 DataFrames.DataFrame
| Row | x  | y |
|-----|----|---|
| 1   | 1  | 2 |
| 2   | 4  | 1 |
| 3   | 7  | 2 |
| 4   | 10 | 1 |
| 5   | 13 | 3 |
| 6   | 16 | 4 |
| 7   | 19 | 5 |
| 8   | 22 | 3 |
| 9   | 25 | 3 |
| 10  | 28 | 3 |

julia> df[findin(df[:y],[1,3]),:]
6x2 DataFrames.DataFrame
| Row | x  | y |
|-----|----|---|
| 1   | 4  | 1 |
| 2   | 10 | 1 |
| 3   | 13 | 3 |
| 4   | 22 | 3 |
| 5   | 25 | 3 |
| 6   | 28 | 3 |

df[[x in[3,4]对于df[:A]]中的x,可能的重复项:]
是一个等效项。易于适应其他集合和条件。Matt B的矢量函数非常有用,对于新用户来说,双数组理解不是很直观。我认为应该将其添加到Base中。
ERROR:UndefVarError:findin未定义
# by column name

julia> df[ [x in [3,4] for x in df[:A]] ,:]
2×2 DataFrame
│ Row │ A     │ B     │
│     │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1   │ 3     │ 6     │
│ 2   │ 4     │ 8     │

# or by column number

julia> df[ [x in [3,4] for x in df[:1]] ,:]
2×2 DataFrame
│ Row │ A     │ B     │
│     │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1   │ 3     │ 6     │
│ 2   │ 4     │ 8     │