如果R数据集中的值存在于另一个数据集中,则保留该值

时间:2015-02-18 10:29:13

标签: r vector subset

我目前正在开发一个代码,该代码适用于来自实验的各种数据集,该实验查看了每个重复中可能不存在的各种变量。我的第一步是创建一个包含所有可能变量的空数据集,然后编写一个函数,该函数保留正在输入的数据集中的列并删除其余的。以下是我想要实现此目标的示例: -

x<-c("a","b","c","d","e","f","g")
y<-c("c","f","g")

有没有办法去除y中不存在的x元素和/或保留y中存在的x的值?

2 个答案:

答案 0 :(得分:1)

关于你的第一个问题:&#34;我的第一步是创建一个包含所有可能变量的空数据集&#34;,我会在所有向量的串联上使用factor,例如:< / p>

all_vect = c(x, y)
possible = levels(factor(all_vect))

然后,对于第二部分&#34;编写一个函数,保留输入数据集中的列并删除其余的&#34;,我会写:

df[,names(df)%in%possible]

答案 1 :(得分:0)

正如akrun所写,使用intersect(x,y)或

> x[x %in% y]