R 在多个数据帧上循环以进行ggplot

R 在多个数据帧上循环以进行ggplot,r,loops,dataframe,ggplot2,R,Loops,Dataframe,Ggplot2,我对这门语言很陌生 我已将多个csv文件读取为数据帧 setwd("/Users/user/go/src/Project/outputcsv2D") file_list <- list.files(path="/Users/user/go/src/Project/outputcsv2D") filenames <- gsub("\\.csv$","", list.files(pattern="\\.csv$")) for(i in filenames){ assign(i,

我对这门语言很陌生

我已将多个csv文件读取为数据帧

setwd("/Users/user/go/src/Project/outputcsv2D")

file_list <- list.files(path="/Users/user/go/src/Project/outputcsv2D")

filenames <- gsub("\\.csv$","", list.files(pattern="\\.csv$"))

for(i in filenames){
  assign(i, read.csv(paste(i, ".csv", sep="")))
}
它给了我这个错误:

Error: `data` must be a data frame, or other object coercible by `fortify()`, not a character vector
我尝试过get或as.data.frame,但两种方法都不起作用。
这个问题的解决方案是什么?

也许您应该尝试一次循环,一次读取数据帧,两次绘图,三次保存绘图:

文件名中的fori{
df也许您应该尝试一次循环,一次读取数据帧,两次绘图,三次保存绘图:

文件名中的fori{ df我建议经常使用lappy

我建议经常使用lappy

或从tidyverse步行+阅读

或从tidyverse步行+阅读


我认为这是一个拼写错误。最后一行应该是在seq_alongfilenames中为I,然后将下一行更改为filenames[I],而不是我认为这是一个拼写错误。最后一行应该是在seq_alongfilenames中为I,然后将下一行更改为filenames[I]这个答案对我来说最有意义。谢谢!这个答案对我来说最有意义。
Error: `data` must be a data frame, or other object coercible by `fortify()`, not a character vector
filenamescsv <- paste0(filenames, ".csv")

lst_DF <- lapply(filenamescsv, read.csv)
gplots <- lapply(lst_DF, function(DF) ggplot(DF, aes(y, x, colour = color)) + geom_point(alpha = .4)+xlim(0, 150)+ylim(0,150))

Map(function(nam, p) {
    file_name <- paste("2D", nam, ".png", sep="")
    png(file_name)
    print(plot_list[[i]])
    dev.off()}, 
  filenames, gplots)
library(readr)
library(stringr)
library(dplyr)
library(purrr)
library(ggplot2)

walk(filenames, ~ read_csv(str_c(.x, ".csv") %>%
                      ggplot(., aes(y, x, colour = color)) +
                       geom_point(alpha = 0.4) +
                       xlim(0, 150)+
                       ylim(0,150) %>%
                  ggsave(plot = ., filename = str_c("2D", .x, ".png"))
       )