R 在多个数据帧上循环以进行ggplot
我对这门语言很陌生 我已将多个csv文件读取为数据帧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,
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"))
)