我有很多文字文件
fr.txt
no.txt
sta.txt
sto.txt
我创建一个文件名为string
的向量string <- c("fr","no","sta","sto")
我想在R中使用for循环使用string作为变量名并读取相应的文件。
for (type in c("fr","no","sta","sto")){type <- read.table(sprintf("%s.txt", type),header=TRUE)}
例如
fr <- read.table("fr.txt",header=TRUE)
no <- read.table("no.txt",header=TRUE)
sta <- read.table("sta.txt",header=TRUE)
我该如何开始?上面的for循环未能做到我想要的。
答案 0 :(得分:0)
如果你想阅读所有&#34; .txt&#34;目录中的文件只使用:
temp = list.files(pattern="*.txt")
myfiles = lapply(temp, read.table)
解释
list.files() - 抓取工作目录中的文件。假设您在&#34; C://示例&#34;中保存了文件(&#34; one.txt&#34;,&#34; two.txt&#34;等等)然后你必须首先设置你的工作目录,如
setwd("C://example"),以便list.files()知道在哪里搜索你的文件。如果需要,您还可以使用以下命令列出.csv文件:
temp = list.files(pattern="*.csv")
现在,您可以为每个&#34; .txt&#34;应用read.table函数。使用以下文件在您的工作目录中输入文件:
lapply(temp, read.table)
答案 1 :(得分:0)
试试这个:
for (type in c("fr","no","sta","sto")){
as.name(type) <- read.table(paste0(type,".txt"), header=TRUE)
}