回答編集履歴

1

勘違いしていました

2022/03/17 03:13

投稿

ujimushi_sradjp
ujimushi_sradjp

スコア2179

test CHANGED
@@ -16,8 +16,8 @@
16
16
  ```julia
17
17
  using CSV, DataFrames, DataFramesMeta
18
18
 
19
- df1 = CSV.read("/home/fujiuchi/test/DF1.txt", DataFrame, header=1)
19
+ df1 = CSV.read("C:/Users/user/Downloads/DF1.txt", DataFrame, header=1)
20
- df2 = CSV.read("/home/fujiuchi/test/DF2.txt", DataFrame, header=1)
20
+ df2 = CSV.read("C:/Users/user/Downloads/DF2.txt", DataFrame, header=1)
21
21
 
22
22
  for r in eachrow(df1)
23
23
  @chain begin
@@ -33,3 +33,23 @@
33
33
  end
34
34
  ```
35
35
 
36
+ ## 追記 ##
37
+
38
+ すみません。勘違いしていました。`@linq`はまだ文法としてあるみたいです。
39
+
40
+ * `r[:id1]`ではうまく`@linq`マクロが認識しないので,`r.id1`等に変更
41
+ * 複数の要素に等価チェックをするので`=`ではなく`.==`を使う
42
+
43
+ 等でOKではないでしょうか?
44
+
45
+ ```julia
46
+ for r in eachrow(df1)
47
+ df_match = @linq df2 |>
48
+ where(:id1 .== r.id1) |>
49
+ where(:C1 .== r.C1) |>
50
+ where(:C2 .== r.C2) |>
51
+ where(:P1 .== r.P1) |>
52
+ where(:P2 .== r.P2)
53
+ println(df_match)
54
+ end
55
+ ```