R: 关于使用 lapply() 函数而不是 for 循环的问题
R: Question about using lapply() function instead of for loop
我已成功运行以下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)
我已成功运行以下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)