檢查數據是否存在於另一個表中嗨,我有 2 個表 A 和 B,每個表都有一個列“email”和“id”。 我想在表 A 中添加一個新列,如果該行在表 B 中顯示“相同的電子郵件或相同的 ID”,則為“是”,如果沒有則為空。 有人可以幫我寫這個腳本嗎?
謝謝。
自動化和腳本消費者和市場研究大規模定制質量與工藝工程Re: 檢查數據是否存在於另一個表中有用! 非常感謝布雷迪!Re: 檢查數據是否存在於另一個表中是的你可以。 我認為最簡單的方法是首先限制您放入列表中的內容,方法是僅使用出現在國家 == 美國的行中的值填充列表。查看第一條評論下方的新行,以及接下來兩行中使用的 [r] 索引。
Names Default To Here( 1 );
dtA = Data Table( "tableA" );
dtb = Data Table( "tableB" );
//make lists of IDs and emails in table B
r = dtB << get rows where( :country == "US" ); //restrict rows to those where country is US
bIDs = (dtB:ID << get values)[r];
bEmails = (dtB:email << get values)[r];
//use formula to check if anything in the given row of A occurs anywhere in B
dtA << New Column( "bMatch",
character,
formula( If( Contains( bIDs, :ID ) | Contains( bEmails, :email ), "YES", "" ) )
);
dtA:bMatch << Delete Formula;
Re: 檢查數據是否存在於另一個表中對不起這是我的錯! 錯誤的列名,我修復了它並且它起作用了! 非常感謝!
下面的一個問題 - 如果在表 b 中有另一列,如國家,其中包含美國或加拿大。我可以在表 a 中做同樣的 YES 列但僅當表 b country = US 時嗎?Re: 檢查數據是否存在於另一個表中根據我的理解,_ 不應引起問題(至少對於 JMP14.3 和 JMP15.2 而言不會)。 您確定您的 dtB 數據表中有 Email_HASHED 列嗎?
Re: 檢查數據是否存在於另一個表中謝謝你! 這就是我要找的。
這個腳本有一個錯誤。 不知道是不是因為col名里面有下劃線?

Re: 檢查數據是否存在於另一個表中嗨,如果我正確地解釋了你的問題,無論何時電子郵件或 ID 出現在 B 中,你都希望表 A 中出現 YES,而不管它們出現在表 B 中的位置。 如果是這樣,這將做:
Names Default To Here(1);
dtA = datatable("tableA");
dtb = datatable("tableB");
//make lists of IDs and emails in table B
bIDs = dtB:ID << get values;
bEmails = dtB:email << get values;
//use formula to check if anything in the given row of A occurs anywhere in B
dtA << new column("bMatch", character, formula(if(contains(bIDs, :ID) | contains(bEmails, :email), "YES", "")));
dtA:bMatch << Delete Formula;
這是示例輸出:

乾杯,
布雷迪
Re: 檢查數據是否存在於另一個表中我不確定您要做什麼。
假設這是表 A:

這是表 B:

因此,考慮兩個表的第 1 行中的 user1。 有兩個不同的id。 應該保留哪一個? 還是我們應該看到那個人被列出兩次? 同樣,id=84 會發生什麼? 應該有兩行還是應該有 user7 電子郵件地址?