R:基于一个列的值存在于另一列中,生成虚拟变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R:基于一个列的值存在于另一列中,生成虚拟变量相关的知识,希望对你有一定的参考价值。

我有一个这样的数据框:

A                    B          
2012,2013,2014     2011
2012,2013,2014     2012
2012,2013,2014     2013
2012,2013,2014     2014
2012,2013,2014     2015

我想创建一个虚拟变量,该变量指示B列中的值是否存在于A列中。1表示存在,而0表示不存在。这样,

A                    B       dummy        
2012,2013,2014     2011        0
2012,2013,2014     2012        1
2012,2013,2014     2013        1
2012,2013,2014     2014        1
2012,2013,2014     2015        0

我曾尝试使用%in%实现这一目标:

df$dummy <- ifelse(df$B %in% df$A, 1, 0)

但是事实证明dummy列中的所有内容都是1

当我尝试使用另一种方法any()时,发生了相同情况:

df$dummy <- any(df$A==df$B)

dummy列中的所有内容都是TRUE

有没有一种有效的方法来生成这个虚拟变量?

非常感谢!

答案

[看起来A列是一串用逗号分隔的数字,所以%in%不合适(例如,如果您在多个字符串的向量中检查了B会很有用,或者如果AB是数字,则为数字)。如果您的数据框架结构不同,请告诉我(并随时编辑您的问题)。

另一答案

如果要使用基数R:

另一答案

制作制表符分隔的文件:

另一答案

这里是使用tidyverse的另一种解决方案。主要问题是A被作为字符串读取。我的解决方案首先将每个数字分成不同的列,然后将B与这些数字进行比较。

以上是关于R:基于一个列的值存在于另一列中,生成虚拟变量的主要内容,如果未能解决你的问题,请参考以下文章

如果来自一列的数据存在于另一列中,则合并两个数据框

根据另一列中的值从一列中减去值(SQL)

R中是不是有一种方法,如果一列的值满足另一列中的某个标准,则该列的值应该是上面的值

如何使一个材料表列的编辑模式字段类型依赖于另一列的值,而不影响其他行?

Python 使用依赖于另一列的值的复杂函数聚合时间序列

获取 ant.design 表列中另一列的值?