R:关于使用lappy()函数代替for循环的问题

R:关于使用lappy()函数代替for循环的问题,r,for-loop,lapply,R,For Loop,Lapply,我已经成功地运行了以下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,如果我犯了基本的错误,请道歉 提前谢谢。请尝试一下,注意这是未经测试的,您可能需要在list2env()和la

我已经成功地运行了以下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,如果我犯了基本的错误,请道歉


提前谢谢。

请尝试一下,注意这是未经测试的,您可能需要在
list2env()
lappy()
函数之间插入一个
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)

for
循环中的X被初始化为原子字符“Y_行1”,Y_行2”,等等。lappy函数中的X建议一个名为
Y_行的向量,索引范围为1到10。即
Y_行[1],Y_行[2]…
如果
Y_行
是向量,则在循环中
X=Y_行[i]
在您的
lappy
函数中,
lappy(Y_行,…).lappy`函数将隐式循环通过Y_行。谢谢你的回答!下面的答案似乎有效,但正如建议的那样,我也将尝试这种方法并查看结果。非常有效,谢谢!出于好奇,可以同时应用多个函数吗?@Vladimitech31。是的,在匿名中us函数您甚至可以存储局部范围的变量并对其进行操作等。我尝试使用两个单独的函数在Lappy括号中添加一行新行,但它只运行最后一个函数。您能否提供一个多个函数的示例?@Vladimitech31抱歉,响应太晚,请参见上文。
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)