首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在R中创建多个csv文件?

如何在R中创建多个csv文件?
EN

Stack Overflow用户
提问于 2011-11-15 03:31:45
回答 3查看 2.5K关注 0票数 2

我有一个.csv文件,里面有不同染色体的数据。染色体名称存储在第一列(列名: Chr)。我的目标是分离每个染色体的数据,即(Chr1,Chr2等),并为每个染色体创建单独的csv文件。我不明白如何在有限的步骤中做到这一点。谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-11-15 04:26:22

演示使用plyr和dataset iris的单行程序

代码语言:javascript
运行
复制
plyr::d_ply(iris, .(Species), function(x) write.csv(x, 
  file = paste(x$Species, ".csv", sep = "")))
票数 6
EN

Stack Overflow用户

发布于 2011-11-15 04:01:04

  1. 读取数据

fn <- dir(pattern="csv") data_in <- do.call(rbind,lapply(fn,按染色体排列)

拆分<- data_out (data_in,data_in[1])

  • Write by data_out

chn <- unlist(lapply(data_out,"[",1,1)) for(i in seq_along(chn)) write.csv(data_out[i],file=paste(chni,"csv",sep="."))

票数 5
EN

Stack Overflow用户

发布于 2011-11-15 04:07:41

一种方法是一次读取一行输入文件,并根据该行的前x个字符将该行附加到正确的输出文件中:

代码语言:javascript
运行
复制
con <- file('yourInputFile', 'r') 

while (length(input <- readLines(con, n=1) > 0){ 
      outputfile <- paste(substr(input, 1, 5), ".csv", sep="" ) 
       ### assuming first 5 characters are new file name
      outfile <- file(outputfile, 'a')
      writeLines(output, con=outfile)
      close(outfile)
} 

这种方法的优点是,即使yourInputFile太大而无法读取到内存中,它也能正常工作。缺点是这种方法很慢,因为它做了大量的文件打开/关闭。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8126984

复制
相关文章

相似问题

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