我正在使用交叉函数,并想知道是否有任何方法可以传递三个命令而不仅仅是两个:即
colnames(df[ intersect ( grep("name",colnames(df) ), grep("name",colnames(df) ), grep("name",colnames(df),invert=TRUE) )])
这给了我一个错误:
Error in base::intersect(x, y, ...)
答案 0 :(得分:4)
使用Reduce
:
x <- letters[1:5]
y <- letters[2:6]
z <- letters[3:7]
Reduce(intersect, list(x, y, z))
#[1] "c" "d" "e"
答案 1 :(得分:0)
已经实现了交叉是关联的,所以你可以把一个放在另一个里面:
colnames(df[ intersect (intersect ( grep("name",colnames(df) ), grep("name",colnames(df))), grep("name",colnames(df),invert=TRUE) )])