Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
传递三个命令以在R中相交_R - Fatal编程技术网

传递三个命令以在R中相交

传递三个命令以在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, ...) 已意识到相交是关联的,因此可以将一个相交放置在另一个相交

我正在使用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 (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操作?