首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将列表中的每个元素保存到文本文件

将列表中的每个元素保存到文本文件
EN

Stack Overflow用户
提问于 2018-08-17 18:35:44
回答 3查看 475关注 0票数 1

我有一个包含许多csv文件的文件夹。我是这样读的

代码语言:javascript
复制
files <-  list.files(pattern = "*.csv")
  [1] "ETo_1980.csv" "ETo_1981.csv" "ETo_1982.csv" "ETo_1983.csv" "ETo_1984.csv" "ETo_1985.csv"
  [7] "ETo_1986.csv" "ETo_1987.csv" "ETo_1988.csv" "ETo_1989.csv" "ETo_1990.csv" "ETo_1991.csv"
  [13] "ETo_1992.csv" "ETo_1993.csv" "ETo_1994.csv" "ETo_1995.csv" "ETo_1996.csv" "ETo_1997.csv"
  [19] "ETo_1998.csv" "ETo_1999.csv" "ETo_2000.csv" "ETo_2001.csv" "ETo_2002.csv" "ETo_2003.csv"
  [25] "ETo_2004.csv" "ETo_2005.csv" "ETo_2006.csv" "ETo_2007.csv" "ETo_2008.csv" "ETo_2009.csv"
  [31] "ETo_2010.csv" "ETo_2011.csv" "ETo_2012.csv" "ETo_2013.csv" "ETo_2014.csv" "ETo_2015.csv

现在我读到了它们:

代码语言:javascript
复制
DT <- lapply(files, fread)

每个文件,我想保存为一个文本文件(.txt)。如何以相同的名称将每个文件另存为.txt?

代码语言:javascript
复制
lapply(DT, function(x) { write.table()})?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-17 18:43:47

我生成了一个名为xlist,其中包含两个名为ab的对象。在循环中使用paste0自动命名文本文件,如下所示:a.txtb.txtwrite.table执行文件的实际保存。

代码语言:javascript
复制
x <- list(a=c(1,2), b=c(3,4))

for(i in 1:length(x)){
  write.table(x[[i]], paste0(names(x)[i], ".txt"), col.names = F)
}

使用list.files查看文件是否已保存到您的工作目录中。

代码语言:javascript
复制
list.files()
[1] "a.txt" "b.txt"
票数 2
EN

Stack Overflow用户

发布于 2018-08-17 18:44:18

改为在索引上循环,并创建要另存为的文件名的向量:

代码语言:javascript
复制
txt_files <- sub("csv$","txt",files)
lapply(seq_along(DT), function(x) write.table(DT[[x]], txt_files[x]))

请注意,您可能还希望从输出中排除row.names。

票数 1
EN

Stack Overflow用户

发布于 2018-08-17 18:44:26

尝试使用read.csv读取CSV文件,然后使用write.csv写入它们:

代码语言:javascript
复制
lapply(files, function(x) {
    df <- read.csv(file=x)
    name <- sub("\\.csv$", "\\.txt", x)
    write.csv(df, file=name)
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51893525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档