Re: [問題] 比對後產生新欄位 與 值

作者: celestialgod (天)   2015-12-08 16:28:29
※ 引述《psinqoo (零度空間)》之銘言:
:
: - 問題: 當你想要問問題時,請使用這個類別
:
: [問題類型]:
:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
:
: [軟體熟悉度]:
: 請把以下不需要的部份刪除
: 使用者(已經有用R 做過不少作品)
: [問題敘述]:
:
: 我想問
: 表一比對表二後,產生新欄位,並貼上值 或 Y / N
: 我用 merge 然後,又修修剪剪貼貼,似乎應該不是這樣
: 用SQL是可以做,但我想從SQL撈資料後,在R上面做
: 表一 表二
: 代號 編碼 代號 編碼
: A 02123 C 76545
: D 34567 D 34567
: E 34871 E 34871
: E 34871
: B 12345
: C 76545
: D 34567
: E 34871
: F 32111
: G 98123
: H 45694
: C 76545
: D 34567
: E 34871
: F 32111
: F 32111
: G 98123
: H 45694
: 變成這樣
: 代號 編碼 比對
: A 02123 N
: D 34567 Y
: E 34871 Y
: E 34871 Y
: B 12345 N
: C 76545 Y
: D 34567 Y
: E 34871 Y
: F 32111 N
: G 98123 N
: H 45694 N
: C 76545 Y
: D 34567 Y
: E 34871 Y
: F 32111 N
: F 32111 N
: G 98123 N
: H 45694 N
:
: [程式範例]:
:
: 張貼能夠重現錯誤的程式碼,可以幫助版友更快的幫你解決問題
:
: [環境敘述]:
:
:
: [關鍵字]:
: 合併
: 比對
: match
: merge
:
:
沒有其他column下這樣就可以搞定了:
library(dplyr)
df_A = data.frame(code = sample(LETTERS[1:10], 100, TRUE),
ID = sample(1:(1e5-1), 100, TRUE))
df_B = df_A[1:5,]
out = bind_rows(df_A, df_B) %>% mutate(check = duplicated(., fromLast =TRUE),
check2 = duplicated(.)) %>% filter(!check2) %>% select(-check2)
有其他column的話就擷取要比對的部分,然後做出上面的out,取out$check併回去
作者: psinqoo (零度空間)   2015-12-08 17:38:00
謝謝~~猴塞雷~~~ 太強了
作者: obarisk (OSWALT)   2015-12-09 08:47:00
加一個全部都是N的column,把intersect的位置換成y也可以

Links booklink

Contact Us: admin [ a t ] ucptt.com