R 不要在Lappy中的列表中收集结果

R 不要在Lappy中的列表中收集结果,r,R,假设我有一个定义如下的文件结构: 有三个文件夹:A、B和C。每个文件夹都包含一个名为file\u demo.csv的文件。现在我想从每个文件夹中读取文件,对它们执行一些操作,并将它们导出到不在这些文件夹中的三个新文件中。随后,我使用lappy()来执行此操作 下面是一些演示代码: # the folder list folder_list <- c('A', 'B', 'C') # creating demo data frames set.seed(1) file_demo_a &l

假设我有一个定义如下的文件结构:

有三个文件夹:
A
B
C
。每个文件夹都包含一个名为
file\u demo.csv
的文件。现在我想从每个文件夹中读取文件,对它们执行一些操作,并将它们导出到不在这些文件夹中的三个新文件中。随后,我使用
lappy()
来执行此操作

下面是一些演示代码:

# the folder list
folder_list <- c('A', 'B', 'C') 

# creating demo data frames
set.seed(1)
file_demo_a <- data.frame(X = rnorm(5),
                        Y = rpois(5, lambda = 2))
write_csv(file_demo_a, 'A/file_demo.csv')

set.seed(2)
file_demo_b <- data.frame(X = rnorm(5),
                          Y = rpois(5, lambda = 2))
write_csv(file_demo_b, 'B/file_demo.csv')

set.seed(3)
file_demo_c <- data.frame(X = rnorm(5),
                          Y = rpois(5, lambda = 2))
write_csv(file_demo_c, 'C/file_demo.csv')

# defining a function
df_mod_func <- function(folder_name){
  path_name <- paste(folder_name, 'file_demo.csv', sep = "/")
  new_demo <- read_csv(path_name)
  new_demo <- new_demo + 1  # do a new operation
  csv_file_name <- paste(folder_name, 'new_file_demo.csv', sep = "_")
  new_demo %>% write_csv(csv_file_name)
  # return(NULL)
}

lapply(folder_list, df_mod_func)
#文件夹列表

文件夹列表如果只是为了不打印结果,您可以始终使用invisible(),如中所示:


如果只是不打印结果,则始终可以使用invisible(),如中所示:

invisible( lapply( folder_list, df_mod_func ) )