传递三个命令以在R中相交
我正在使用intersect函数,并且想知道是否有任何方法可以传递三个命令,而不仅仅是两个:即传递三个命令以在R中相交,r,R,我正在使用intersect函数,并且想知道是否有任何方法可以传递三个命令,而不仅仅是两个:即 colnames(df[ intersect ( grep("name",colnames(df) ), grep("name",colnames(df) ), grep("name",colnames(df),invert=TRUE) )]) 这给了我一个错误: Error in base::intersect(x, y, ...) 已意识到相交是关联的,因此可以将一个相交放置在另一个相交
colnames(df[ intersect ( grep("name",colnames(df) ), grep("name",colnames(df) ), grep("name",colnames(df),invert=TRUE) )])
这给了我一个错误:
Error in base::intersect(x, y, ...)
已意识到相交是关联的,因此可以将一个相交放置在另一个相交中:
colnames(df[ intersect (intersect ( grep("name",colnames(df) ), grep("name",colnames(df))), grep("name",colnames(df),invert=TRUE) )])
已意识到相交是关联的,因此可以将一个相交放置在另一个相交中:
colnames(df[ intersect (intersect ( grep("name",colnames(df) ), grep("name",colnames(df))), grep("name",colnames(df),invert=TRUE) )])
使用
Reduce
:
x <- letters[1:5]
y <- letters[2:6]
z <- letters[3:7]
Reduce(intersect, list(x, y, z))
#[1] "c" "d" "e"
x使用Reduce
:
x <- letters[1:5]
y <- letters[2:6]
z <- letters[3:7]
Reduce(intersect, list(x, y, z))
#[1] "c" "d" "e"
x好的思维,但正如你所看到的,有更快更干净的方法(罗兰的答案)好的思维,但正如你所看到的,有更快更干净的方法(罗兰的答案)你如何将这种方法用于函数?我不明白。Reduce
的第一个参数必须始终是一个(二进制)函数。我如何编写此参数来执行三个grep操作?如何将此方法用于函数?我不明白。Reduce
的第一个参数必须始终是一个(二进制)函数。我如何编写它来执行三个grep操作?