我是R的新手并且已经搜遍了所有人,但找不到我具体问题的答案。
我有一个程序吐出列表(类“字符”),我想创建一个新列表,其中包含两个这些字符列表共有的名称。
这些列表的示例格式可以通过以下方式重新创建:
fruit <- c("apple", "banana", "plum", "cherry", "strawberry", "mango", "peach")
redstuff <- c("hydrant", "blood", "car", "cherry", "ruby", "toothbrush", "apple")
现在我已经读过,如果merge()
,all.x=FALSE
可以执行此类操作。但是,我认为列表并不符合正确的格式。
最好的方法是什么?我是否需要先将这两个列表转换为数据帧?另外,我需要将最终的新列表再次作为字符列表才能将其用作输入,那么如何将其更改回去?或者有没有一种干净的方法来做我需要做的事情而不将列表转换为不同的格式?
答案 0 :(得分:4)
intersect
是您正在寻找的功能。
> intersect(fruit, redstuff)
[1] "apple" "cherry"
有关详细信息,请参阅?intersect
。