首页 > 解决方案 > R 编程语言中的 VLOOKUP。目前在 Excel 中做 VLOOKUP,仍然无法在 R 中得到想要的结果

问题描述

R 编程语言中的 VLOOKUP - 问题陈述:我需要在 R 中执行 VLOOKUP,以获取月度报告。我目前正在 Excel 中执行此操作,但是,我想在 R 中执行此操作。

背景:

1.) df1 = 50,000 Rows / 115 Columns – 我要匹配的列:“account_number”

 A.) df1$account_number

2.) df2 = 11,000 行 / 2 列 – 我要匹配的列:“account_number_1”

 B.) df2$account_number_1

3.) df1$flag – 我想要一个“Y”或“N”来匹配 df1$account_number == df2$account_number_1

C.) df1$flag

研究尝试:

• 我一直在寻找、尝试和尝试编写我认为很容易的代码,但是,我不知道为什么它如此困难。

• 我的搜索和反复试验导致了Merge、Match、Duplicate 和其他我不记得的方法,但它们都没有提供我真正需要的东西。非常感谢任何有关我做错了什么和/或如何完成 VLOOKUP 以获得所需结果的帮助!谢谢!

我以为我会通过这个 StackOverflow 链接得到它,但是,我仍然无法得到想要的结果:

如何在 R 中进行 vlookup 和填写(如在 Excel 中)?

这是我的搜索和脚本尝试:

合并:# 组合 2 个数据框:

当它们具有不同的列集时,按行组合两个数据帧(rbind

(仅供参考:cbind,left_join,inner_join - 都给我错误,但是,“smartbind” WORKS!!!)

df_merge <- smartbind(df1, df2)

我尝试 TRUE/FALSE - cbind 和 rbind # https://www.youtube.com/watch?v=NFaK1Qn4u3A - R 中的逻辑语句 (TRUE/FALSE) 和 cbind 和 rbind 命令(R 教程 1.9)

 df_merge$flag <- df_merge$account_number == df_merge$account_number_1

https://www.youtube.com/watch?v=LKoknpFOEUw - 搜索“在 R 中如何匹配值”

 duplicated(df_merge) which(duplicated(df_merge))

https://www.youtube.com/watch?v=eVEx_pBEkRI

df_merge$flag <- any(df_merge$account_number == df_merge$account_number_1)

任何(df_merge$account_number == df_merge$account_number_1)

 if (which(duplicated(df_merge$account_number == df_merge$account_number_1))) {   df_merge$flag <- "Y" } else if (which(duplicated(df_merge$account_number != df_merge$account_number_1)) {   status <- "N" }

我尝试了这些链接,但迷路了:

如何在 R 中进行 vlookup 和填写(如在 Excel 中)?

http://stat.ethz.ch/R-manual/R-devel/library/base/html/match.html

 match(x, table, nomatch = NA_integer_, incomparables = NULL)

 x %in% table

 df_match <- match(df_merge$account_number , df_merge$ account_number_1, nomatch=NA_integer_, incomparables=NULL)

标签: rexcelvlookup

解决方案


你不需要合并任何东西。

df1$flag <- df1$account_number %in% df2$account_number_1

这将创建一列 TRUE/FALSE 值。对于您想做的任何事情,这应该足够了。如果您必须具有是/否值:

df1$flag <- ifelse(df1$account_number %in% df2$account_number_1, "Yes", "No")

推荐阅读