我目前正在开发一个代码,该代码适用于来自实验的各种数据集,该实验查看了每个重复中可能不存在的各种变量。我的第一步是创建一个包含所有可能变量的空数据集,然后编写一个函数,该函数保留正在输入的数据集中的列并删除其余的。以下是我想要实现此目标的示例: -
x<-c("a","b","c","d","e","f","g")
y<-c("c","f","g")
有没有办法去除y中不存在的x元素和/或保留y中存在的x的值?
答案 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]