楼主: hpxj
7389 15

[问答] 请问怎么用R批量读入文本文件后求最值,然后再批量输出 [推广有奖]

  • 1关注
  • 2粉丝

大专生

20%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
742 点
帖子
18
精华
0
在线时间
67 小时
注册时间
2014-9-21
最后登录
2016-3-17

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
QQ图片20150216153357.png 每一个TXT里的内容如图,第一列是年份,第二列是数值,请问怎么求每年对应的数值的最大值?每年对应的行数都不同。
QQ图片20150216153641.png 这是同一个文件夹下的待处理TXT文件,每个TXT的行数都不同。请问大神,如何批量读入求每个TXT每年的最大值后再批量输出这么多个TXT呢?

二维码

扫码加我 拉你入群

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

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

关键词:文本文件 txt 最大值 文件夹 文本文件

回帖推荐

nuomin 发表于12楼  查看完整内容

沙发
nuomin 发表于 2015-2-16 21:52:33 |只看作者 |坛友微信交流群
大概思路就是这样的,根据你的text文件格式进行调整就可以了
  1. dir_dta <- "E:/R_Work/Projects/SML/labor2007data"
  2. file_list <- list.files(path=dir_dta,full.names=T)
  3. varSave_func <- function(x){
  4.                                  table_x <- read.table(file=x,sep=" ",convert.factors=F)
  5.                                  tablename <- sub("(.*\\/)([^.]+)(\\.[[:alnum:]]+$)", "\\2",x)
  6.                                  writedata <- data.frame(list(max="max",data=max(table_x$V2)))
  7.                                  write.table(writedata,file=x,append=TRUE)
  8. }
  9. invisible(lapply(file_list,FUN=varSave_func))
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

使用道具

藤椅
nuomin 发表于 2015-2-16 22:14:23 |只看作者 |坛友微信交流群
论坛贴代码不好用了,贴好几次了

使用道具

板凳
hpxj 发表于 2015-2-17 09:56:26 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-16 21:52
大概思路就是这样的,根据你的text文件格式进行调整就可以了
灰常感谢,弱弱的问句,我运行这个代码出错了,该肿么改呢?
错误提示:Error in read.table(file = x, sep = " ", convert.factors = F) :                   unused argument (convert.factors = F)

使用道具

报纸
nuomin 发表于 2015-2-17 10:57:11 |只看作者 |坛友微信交流群
hpxj 发表于 2015-2-17 09:56
灰常感谢,弱弱的问句,我运行这个代码出错了,该肿么改呢?
错误提示:Error in read.table(file = x,  ...
把convert.factors = F删了吧,最初用来读dta文件的,这个参数控制读value而不是lable。

使用道具

地板
hpxj 发表于 2015-2-17 11:19:58 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-17 10:57
把convert.factors = F删了吧,最初用来读dta文件的,这个参数控制读value而不是lable。
  1. > dir_dta<-"e:/WWB/result/md1"
  2. > file_list<-list.files(path=dir_dta,full.names=T)
  3. > varSave_func <- function(x){
  4. +                         table_x <- read.table(file=x,sep=" ")
  5. +                         talename <- sub("(.*\\/)([^.]+)(\\.[[:alnum:]]+$)","\\2",x)
  6. +                         writedata <- data.frame(list(max="max",data=max(table_x$V2)))
  7. +                         write.table(writedata,file=x,append=TRUE)
  8. + }
  9. > invisible(lapply(file_list,FUN=varSave_func))
  10. Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
  11.   line 6 did not have 20 elements
复制代码

使用道具

7
hpxj 发表于 2015-2-17 11:21:29 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-17 10:57
把convert.factors = F删了吧,最初用来读dta文件的,这个参数控制读value而不是lable。
好像出错了,错误提示在楼上,该咋改呢~~~~(>_<)~~~~

使用道具

8
nuomin 发表于 2015-2-22 14:04:18 |只看作者 |坛友微信交流群
hpxj 发表于 2015-2-17 11:21
好像出错了,错误提示在楼上,该咋改呢~~~~(>_
贴两个txt文件做例子,我看看

使用道具

9
hpxj 发表于 2015-2-23 21:09:11 |只看作者 |坛友微信交流群
这是我的txt文件压缩包@nuomin

md1.zip

521.17 KB

使用道具

10
nuomin 发表于 2015-2-24 10:59:18 |只看作者 |坛友微信交流群
hpxj 发表于 2015-2-23 21:09
这是我的txt文件压缩包@nuomin
  1. dir_dta <- "E:/R_Work/Projects/myworkprogram/md1"
  2. file_list <- list.files(path=dir_dta,full.names=T)
  3. varSave_func <- function(xx){
  4.                                  table_xx1 <- scan(file=xx)
  5.                                  len <- length(table_xx1)
  6.                                  table_xx2 <- data.frame(list(x1=table_xx1[seq(1,len,2)],
  7.                                                               x2=table_xx1[seq(2,len,2)]))
  8.                                  writetext <- paste("        max          ",data=max(table_xx2$x2),collapse="")
  9.                                  write(x=writetext,file=xx,append=TRUE)
  10. }
  11. invisible(lapply(file_list,FUN=varSave_func))
复制代码
md1.1.rar (452.59 KB)

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-14 07:31