R:关于使用lapply()函数而不是for循环的问题



我已经成功地运行了以下for循环函数:

for (i in 1:10){
X=get(paste0("Y_lines",i))
X <- tm_map(X, content_transformer(tolower))
assign(paste0("Y_lines",i), X)
rm(X)}

我想使用lapply((函数,因为它更节省时间。我试过这个功能,但没有发现任何成功。这是我最近的努力:

lapply(X = Y_lines[1:10], FUN = tm_map(X, content_transformer(tolower)))

这是我第一次使用lapply,所以如果我犯了基本错误,我很抱歉。

提前谢谢。

破解一下,注意这是未经测试的,您可能需要在list2env()lapply()函数之间插入一个setNames()函数:(根据附加问题进行编辑(:我们可以存储匿名函数第一部分的结果,然后在上面应用另一个函数,如下所示:

list2env(lapply(mget(ls(.GlobalEnv, pattern = "Y_lines"), envir = .GlobalEnv), function(x){
y <- tm_map(x, content_transformer(tolower))
tm_map(y, removeWords, stopwords("english"))
}
), .GlobalEnv)

或者我们可以超载:

list2env(lapply(mget(ls(.GlobalEnv, pattern = "Y_lines"), envir = .GlobalEnv), function(x){
tm_map(tm_map(x, content_transformer(tolower)), removeWords, stopwords("english"))
}
), .GlobalEnv)

最新更新