楼主: Xinght
26292 22

[问答] 如何用R读取多个文件中指定列的数据并存入同一文件中 [推广有奖]

  • 0关注
  • 0粉丝

初中生

71%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
314 点
帖子
12
精华
0
在线时间
15 小时
注册时间
2014-3-14
最后登录
2015-2-21

楼主
Xinght 发表于 2014-3-14 17:43:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请各位高手帮忙
我要读取近万个文件中指定数据列的数据并将他们存入同一文件中。如何用R实现。谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:如何用 R实现 如何

本帖被以下文库推荐

  • · R学习|主题: 262, 订阅: 161

沙发
Shonphy 发表于 2014-3-15 21:23:28
用PYTHON吧,这种问题,phthon容易多了,安装文件只有20M,语言很简单,容易学。

藤椅
yywan0913 在职认证  发表于 2014-3-16 00:37:48
文件名有没有什么规律么?有的话两条命令搞定,不过时间上可能就慢些,毕竟R处理文本没那么完美。
是什么给了你自信

板凳
Xinght 发表于 2014-3-17 11:36:42
yywan0913 发表于 2014-3-16 00:37
文件名有没有什么规律么?有的话两条命令搞定,不过时间上可能就慢些,毕竟R处理文本没那么完美。
文件名没有什么规律,但是都已经读到一个txt文档里面了,只需要用read.table 就可以将它们按顺序读出来然后找到相应要打开的文件。

报纸
Xinght 发表于 2014-3-17 12:08:22
Xinght 发表于 2014-3-17 11:36
文件名没有什么规律,但是都已经读到一个txt文档里面了,只需要用read.table 就可以将它们按顺序读出来然 ...
rm(list=ls())
SimFiles <- "C:\\Test\\"
setwd(SimFiles) # Set the working directory
SimNames<- read.table(file = "apsimoutfiles.TXT",header=TRUE, dec = ".")
for (i in 1:100000){
        OpenFileName<-SimNames$SimScinariosNames
        DrySimBasic<- readLines(OpenFileName,warn=F)
        NewSimFile<-DrySimBasic
        NewSimFile<-gsub("dd/mm/yyyy as Date","year",NewSimFile)
        writeLines(NewSimFile,OpenFileName)
}
就像这段程序中,我将要打开的文件用Read.table打开然后付给一个变量,然后用radlines打开就会出错啊?
Error in readLines(OpenFileName, warn = F) : 'con' is not a connection

地板
yywan0913 在职认证  发表于 2014-3-17 14:06:33
---此楼删除
是什么给了你自信

7
yywan0913 在职认证  发表于 2014-3-17 14:13:18
  1. OpenFileName<-SimNames$SimScinariosNames改成OpenFileName<-as.character(SimNames$SimScinariosNames[i])试试?
复制代码
是什么给了你自信

8
Xinght 发表于 2014-3-17 19:16:08
yywan0913 发表于 2014-3-17 14:13
谢谢,这个问题解决了。
rm(list=ls())
SimFiles <- "C:\\Test\\"
setwd(SimFiles)
FileNames<-read.table(file = "apsimoutfiles.TXT",header=TRUE, dec = ".")
XNData<-matrix(nrow=126,ncol=17)
for (i in 1:17){
    OpenFileName<-FileNames$SimScinariosNames
      OpenFileName<-paste("C:/Test/",OpenFileName,sep="")
      XSimData<-read.table(OpenFileName,header=TRUE, dec = ".",skip=2)
      XNData[,i]=XSimData$XNSim
}
write.table(XNData,file="C:/Test/NSimData.txt", sep=",",quote=FALSE)

这段程序那里出错了,为何写出的数据不是XNSim的数据,谢谢

9
jmpamao 发表于 2014-3-17 20:49:25
Xinght 发表于 2014-3-17 19:16
谢谢,这个问题解决了。
rm(list=ls())
SimFiles
出现了斜体,写代码的时候最好<>来写,因为
  1. [i] 在此论坛中被设置了斜体
复制代码
另外,感觉可以不用循环来做

10
淘宝网橙迷橙橙 发表于 2014-3-17 21:45:20
如是txt数据文件,将多个文件读入列表,剩下的,你看着办。
fileName <- dir(pattern="txt")
read.file <- function(File){
  read.table(File,header=TRUE,sep=" ",stringsAsFactors=F)
}
datalist <- lapply(fileName,read.file)

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 18:57