我正在R中运行一个示例,逐步执行这些步骤,到目前为止,一切正常,除了此代码会产生错误:
words <- dtm %>%
as.matrix %>%
colnames %>%
(function(x) x[nchar(x) < 20])
错误:找不到函数“%>%”
我不知道使用此特殊运算符的好处是什么
%>%
,任何反馈都很好。
Answers:
您需要先加载一个定义函数的包(如magrittr
或dplyr
),然后它才能工作。
install.packages("magrittr") # package installations are only needed the first time you use it
install.packages("dplyr") # alternative installation of the %>%
library(magrittr) # needs to be run every time you start R and want to use %>%
library(dplyr) # alternatively, this also loads %>%
%>%
引入管道运算符是为了“减少开发时间并提高代码的可读性和可维护性”。
但是每个人都必须自己决定是否真的适合他的工作流程并使事情变得容易。有关更多信息 magrittr
,请单击此处。
不使用管道%>%
,此代码将返回与您的代码相同的代码:
words <- colnames(as.matrix(dtm))
words <- words[nchar(words) < 20]
words
编辑:( 由于@Molx做出了非常有用的评论,我正在扩展我的答案)
尽管来自
magrittr
,管道操作符还是更常用于软件包dplyr
(需要并加载magrittr
),因此,每当看到有人使用该软件包时,请%>%
确保不要加载dplyr
。
magrittr
,管道操作符还是更常与软件包一起使用dplyr
(require和load magrittr
),因此,每当您看到有人使用该软件包时,请%>%
确保不要加载dplyr
。
library(tidyverse)
)可能不够。之后我添加了(library(dplyr)
)library(tidyverse)
,然后%>%
被找到。
在Windows上:如果您使用%>%A%dopar%循环里面,你必须添加到负载包的引用dplyr
(或者magrittr
,其dplyr
载荷)。
例:
plots <- foreach(myInput=iterators::iter(plotCount), .packages=c("RODBC", "dplyr")) %dopar%
{
return(getPlot(myInput))
}
如果您省略了该.packages
命令,%do%
而是使用它使所有命令都在单个进程中运行,则可以正常工作。原因是它们全部在一个进程中运行,因此不需要专门加载新程序包。
foreach
。
可以使用以下内容:
install.packages("data.table")
library(data.table)