替换R中for循环中的字符串

时间:2017-03-23 11:28:16

标签: r string for-loop

我有很多文字文件

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循环未能做到我想要的。

2 个答案:

答案 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)
}