作者celestialgod (天)
看板R_Language
标题Re: [问题] 比对後产生新栏位 与 值
时间Tue Dec 8 16:28:29 2015
※ 引述《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并回去
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.74.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1449563311.A.901.html
1F:推 psinqoo: 谢谢~~猴塞雷~~~ 太强了 12/08 17:38
还好啦,刚好想到这招而已QQ
※ 编辑: celestialgod (140.109.74.87), 12/08/2015 17:41:11
2F:推 obarisk: 加一个全部都是N的column,把intersect的位置换成y也可以 12/09 08:47