R 如何根据文本文件的名称读取文本文件?
我在一个文件夹R 如何根据文本文件的名称读取文本文件?,r,text,R,Text,我在一个文件夹fm中有文本文件,该文件夹中每个站点有三个不同名称的测量值,但它们共享站点名称。这些名字的结构相似。我有另一个文件夹st,其中文件名的结构不同,但网站名包含在文件名的某个位置。我想在fm中绘制三个测量值,并在sm中绘制相应的文件(站点名称) 我可以将所有文件读取为: wgl= read.table("C:\\Users\\wg_ave.txt", sep ='' , header =TRUE) 我可以很容易地手动执行此操作,但由于我有几个文件,我想编写一个函数来读取相应的文
fm
中有文本文件,该文件夹中每个站点有三个不同名称的测量值,但它们共享站点名称。这些名字的结构相似。我有另一个文件夹st
,其中文件名的结构不同,但网站名包含在文件名的某个位置。我想在fm
中绘制三个测量值,并在sm
中绘制相应的文件(站点名称)
我可以将所有文件读取为:
wgl= read.table("C:\\Users\\wg_ave.txt", sep ='' , header =TRUE)
我可以很容易地手动执行此操作,但由于我有几个文件,我想编写一个函数来读取相应的文件,并对文件夹中的所有文件执行此操作
First step:Search in folder `fm`files with the same site name
Wgl: l_name of the site
Wgk: k_name of the site
Wger: er_name of the site
读一下:
Wgl= read.table("C:\\Users\\wg_ave.txt", sep ='' , header =TRUE)
etc….
在文件夹sm
中搜索此网站的名称并阅读
wgsitu= read.table("C:\\Users\\wlkave.txt", sep ='' , header =TRUE)
做计算、绘图等等
cor(Wgl$va,wgsitu$fg)
cor(Wgk$va,wgsitu$fg)
cor(Wger$va,wgsitu$fg)
其他站点的循环
非常感谢您的帮助您可以这样做:(非常原始的代码) 读取数据
如A版所述
site_file_names <- list.files("path-to-folder/sm", pattern = paste0(site_names, collapse = "|"), full.names = TRUE)
dat <- lapply(files, read.table, sep = '', header = TRUE)
site\u file\u name您可以这样做:(非常原始的代码)
读取数据
如A版所述
site_file_names <- list.files("path-to-folder/sm", pattern = paste0(site_names, collapse = "|"), full.names = TRUE)
dat <- lapply(files, read.table, sep = '', header = TRUE)
site\u file\u name您可以这样做:(非常原始的代码)
读取数据
如A版所述
site_file_names <- list.files("path-to-folder/sm", pattern = paste0(site_names, collapse = "|"), full.names = TRUE)
dat <- lapply(files, read.table, sep = '', header = TRUE)
site\u file\u name您可以这样做:(非常原始的代码)
读取数据
如A版所述
site_file_names <- list.files("path-to-folder/sm", pattern = paste0(site_names, collapse = "|"), full.names = TRUE)
dat <- lapply(files, read.table, sep = '', header = TRUE)
site\u file\u name通过站点名称进行循环可能更容易:
#set your directory
setwd("C:\\Users\\fm")
#you get the list of files in the directory
lista<-list.files()
#example (don't run)
#lista<-c("l_new","k_new","er_new","l_old","k_old","er_old")
# I want a loop for each site. Suppose we have 2 sites old and new
my_site<-c("new","old")
for (i in 1:length(mysite)) {
setwd("C:\\Users\\fm")
#get the 3 files of i site
files<-grep(my_site[i],lista,fixed=TRUE, value=TRUE)
Wgl<- read.table(paste("C:\\Users\\fm\\","l_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wgk<-read.table(paste("C:\\Users\\fm\\","k_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wger<-read.table(paste("C:\\Users\\fm\\","er_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
setwd("C:\\Users\\st")
Wgl_file<-grep(wgl,list.files(),fixed=TRUE, value=TRUE)
Wgl_site<-read.table(paste("C:\\Users\\st\\",Wgl_file,sep="") , sep ='' , header =TRUE)
Wgk_file<-grep(Wgk,list.files(),fixed=TRUE, value=TRUE)
Wgk_site<-read.table(paste("C:\\Users\\st\\",Wgk_file,sep="") , sep ='' , header =TRUE)
Wger_file<-grep(Wger,list.files(),fixed=TRUE, value=TRUE)
Wger_site<-read.table(paste("C:\\Users\\st\\", Wger_file,sep="") , sep ='' , header =TRUE)
[...]
}
#设置您的目录
setwd(“C:\\Users\\fm”)
#您将获得目录中的文件列表
lista通过站点名称进行循环可能更容易:
#set your directory
setwd("C:\\Users\\fm")
#you get the list of files in the directory
lista<-list.files()
#example (don't run)
#lista<-c("l_new","k_new","er_new","l_old","k_old","er_old")
# I want a loop for each site. Suppose we have 2 sites old and new
my_site<-c("new","old")
for (i in 1:length(mysite)) {
setwd("C:\\Users\\fm")
#get the 3 files of i site
files<-grep(my_site[i],lista,fixed=TRUE, value=TRUE)
Wgl<- read.table(paste("C:\\Users\\fm\\","l_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wgk<-read.table(paste("C:\\Users\\fm\\","k_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wger<-read.table(paste("C:\\Users\\fm\\","er_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
setwd("C:\\Users\\st")
Wgl_file<-grep(wgl,list.files(),fixed=TRUE, value=TRUE)
Wgl_site<-read.table(paste("C:\\Users\\st\\",Wgl_file,sep="") , sep ='' , header =TRUE)
Wgk_file<-grep(Wgk,list.files(),fixed=TRUE, value=TRUE)
Wgk_site<-read.table(paste("C:\\Users\\st\\",Wgk_file,sep="") , sep ='' , header =TRUE)
Wger_file<-grep(Wger,list.files(),fixed=TRUE, value=TRUE)
Wger_site<-read.table(paste("C:\\Users\\st\\", Wger_file,sep="") , sep ='' , header =TRUE)
[...]
}
#设置您的目录
setwd(“C:\\Users\\fm”)
#您将获得目录中的文件列表
lista通过站点名称进行循环可能更容易:
#set your directory
setwd("C:\\Users\\fm")
#you get the list of files in the directory
lista<-list.files()
#example (don't run)
#lista<-c("l_new","k_new","er_new","l_old","k_old","er_old")
# I want a loop for each site. Suppose we have 2 sites old and new
my_site<-c("new","old")
for (i in 1:length(mysite)) {
setwd("C:\\Users\\fm")
#get the 3 files of i site
files<-grep(my_site[i],lista,fixed=TRUE, value=TRUE)
Wgl<- read.table(paste("C:\\Users\\fm\\","l_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wgk<-read.table(paste("C:\\Users\\fm\\","k_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wger<-read.table(paste("C:\\Users\\fm\\","er_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
setwd("C:\\Users\\st")
Wgl_file<-grep(wgl,list.files(),fixed=TRUE, value=TRUE)
Wgl_site<-read.table(paste("C:\\Users\\st\\",Wgl_file,sep="") , sep ='' , header =TRUE)
Wgk_file<-grep(Wgk,list.files(),fixed=TRUE, value=TRUE)
Wgk_site<-read.table(paste("C:\\Users\\st\\",Wgk_file,sep="") , sep ='' , header =TRUE)
Wger_file<-grep(Wger,list.files(),fixed=TRUE, value=TRUE)
Wger_site<-read.table(paste("C:\\Users\\st\\", Wger_file,sep="") , sep ='' , header =TRUE)
[...]
}
#设置您的目录
setwd(“C:\\Users\\fm”)
#您将获得目录中的文件列表
lista通过站点名称进行循环可能更容易:
#set your directory
setwd("C:\\Users\\fm")
#you get the list of files in the directory
lista<-list.files()
#example (don't run)
#lista<-c("l_new","k_new","er_new","l_old","k_old","er_old")
# I want a loop for each site. Suppose we have 2 sites old and new
my_site<-c("new","old")
for (i in 1:length(mysite)) {
setwd("C:\\Users\\fm")
#get the 3 files of i site
files<-grep(my_site[i],lista,fixed=TRUE, value=TRUE)
Wgl<- read.table(paste("C:\\Users\\fm\\","l_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wgk<-read.table(paste("C:\\Users\\fm\\","k_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
Wger<-read.table(paste("C:\\Users\\fm\\","er_",my_site[i],".txt",sep="") , sep ='' , header =TRUE)
setwd("C:\\Users\\st")
Wgl_file<-grep(wgl,list.files(),fixed=TRUE, value=TRUE)
Wgl_site<-read.table(paste("C:\\Users\\st\\",Wgl_file,sep="") , sep ='' , header =TRUE)
Wgk_file<-grep(Wgk,list.files(),fixed=TRUE, value=TRUE)
Wgk_site<-read.table(paste("C:\\Users\\st\\",Wgk_file,sep="") , sep ='' , header =TRUE)
Wger_file<-grep(Wger,list.files(),fixed=TRUE, value=TRUE)
Wger_site<-read.table(paste("C:\\Users\\st\\", Wger_file,sep="") , sep ='' , header =TRUE)
[...]
}
#设置您的目录
setwd(“C:\\Users\\fm”)
#您将获得目录中的文件列表
listawhich使之更容易,因为您只需使用site\u名称之类的内容从文件中提取站点名称,这使其更容易,因为您只需使用site\u名称之类的内容从文件中提取站点名称,这使其更容易,因为您只需使用某些内容从文件中提取站点名称比如site\u name,这使它更容易,因为你只需要从文件中提取类似site\u name的站点名称,我不太理解你问题的这一步。我试着编辑我的答案,也许我更了解你对我答案的评论。我又编辑了!因此las步骤可以是:setwd(“C:\\Users\\st”);st_filefiles是为了检查gre是否工作良好。如果它返回字符(0)
则有问题<代码>我的站点[i]
是站点的名称吗list.files()
为您提供感兴趣的文件getwd()
是正确的目录吗?我不太理解你问题的这一步。我试着编辑我的答案,也许我更了解你对我答案的评论。我又编辑了!因此las步骤可以是:setwd(“C:\\Users\\st”);st_filefiles是为了检查gre是否工作良好。如果它返回字符(0)
则有问题<代码>我的站点[i]
是站点的名称吗list.files()
为您提供感兴趣的文件getwd()
是正确的目录吗?我不太理解你问题的这一步。我试着编辑我的答案,也许我更了解你对我答案的评论。我又编辑了!因此las步骤可以是:setwd(“C:\\Users\\st”);st_filefiles是为了检查gre是否工作良好。如果它返回字符(0)
则有问题<代码>我的站点[i]
是站点的名称吗list.files()
为您提供感兴趣的文件getwd()
是正确的目录吗?我不太理解你问题的这一步。我试着编辑我的答案,也许我更了解你对我答案的评论。我又编辑了!因此las步骤可以是:setwd(“C:\\Users\\st”);st_filefiles是为了检查gre是否工作良好。如果它返回字符(0)
则有问题<代码>我的站点[i]
是站点的名称吗list.files()
为您提供感兴趣的文件getwd()
是正确的目录吗?