楼主: hpxj
7429 15

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

11
hpxj 发表于 2015-2-24 16:18:59 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-24 10:59
1.png 2.png 谢谢亲哈,但我想求的不是整个第二列的最大值,而是每年(第一列)对应的最大值,如上面两个图,左图是原数据,右图是最终要得的数据,请问这可以用R实现么?

使用道具

12
nuomin 发表于 2015-2-24 19:12:03 |只看作者 |坛友微信交流群
hpxj 发表于 2015-2-24 16:18
谢谢亲哈,但我想求的不是整个第二列的最大值,而是每年(第一列)对应的最大值,如上面两个图,左图是原 ...
  1. dir_in <- "E:/R_Work/Projects/myworkprogram/md1"
  2. file_list <- list.files(path=dir_in,full.names=T)
  3. dir_out <- "E:/R_Work/Projects/myworkprogram/md1.2"
  4. if (!(file.exists(dir_out))) dir.create(dir_out)

  5. yearMax_func <- function(xx){
  6.     table_xx1 <- scan(file=xx)
  7.     len <- length(table_xx1)
  8.     x1 <- factor(table_xx1[seq(1,len,2)])
  9.     x2 <- table_xx1[seq(2,len,2)]
  10.     writeArray <- tapply(X=x2,INDEX=x1,FUN=function(x) max(x))

  11.     filename <- sub("(.*\\/)([^.]+)(\\.[[:alnum:]]+$)", "\\2\\3",xx)
  12.     outfile <- paste(dir_out,filename,sep="/");cat(outfile)
  13.     write.table(x=writeArray,file=outfile,quote=FALSE,col.names=F)
  14. }
  15. invisible(lapply(file_list,FUN=yearMax_func))
复制代码
md1.2.rar (132.21 KB)
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

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

使用道具

13
hpxj 发表于 2015-2-25 13:35:43 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-24 19:12
太谢谢亲啦,正是我想要的结果,太腻害了

使用道具

14
hpxj 发表于 2015-3-22 17:28:44 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-24 19:12
大神,话说我能不能再问你个算法,表拍我~~~~(>_<)~~~~

使用道具

15
hpxj 发表于 2015-7-17 12:56:08 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-24 19:12
大神,再请问下 如果我想把各个txt里每年对应的超过10 的值挑出来,按照第一列(年份)、第二列(数值)的格式批量存放,该怎么改程序呢?谢谢哈

使用道具

16
独倚清莲 发表于 2016-3-17 14:40:01 |只看作者 |坛友微信交流群
nuomin 发表于 2015-2-16 21:52
大概思路就是这样的,根据你的text文件格式进行调整就可以了
大牛!

使用道具

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

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

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

GMT+8, 2024-5-28 23:22