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