如何使用R语言转换普通文本到CSV格式

本文介绍了如何使用R语言将包含额外表头信息的普通文本文件转换为CSV格式。内容包括环境配置、单独文件和多个文件的转换步骤,涉及readLine、writeLine等函数的使用,以及如何处理和写入数据。

@晴晴小朋友的一些问题R语言处理数据

如何使用R语言转换普通文本到CSV格式

回答晴晴小朋友到一些工作上到问题,同时自己也是对这方面进行一些学习,使用啦R语言进行一批普通文本到CSV格式到转换,普通文本是属于设备自行记录收集到数据文本,区别与一般到CSV文件,多出了3行数据记录log,同时,表头(columes row)相对于下面的数据多出一列。

环境配置

使用到到R语言是3.2.3在ubuntu系统下临时装上的,黑苹果没吃上,然而win被我格式化啦,现在完全是工作狂模式,我最爱到wow,炉石传说,都没法玩啦,很是郁闷:

  1. miniconda 的安装,清华镜像站,下载最新到 miniconda ;
  2. chmod 777 miniconda
  3. ./miniconda
  4. 把miniconda/bin/的位置添加到PATH中,这里我使用到是 ~/.bash_profile 向其中加入 export path=$/where/your/miniconda/bin
  5. 安装jupyter: pip install jupyter
  6. 安装R:sudo apt-get install r-base-core
  7. R中安装jupyter的核:install.packages(‘IRkernel’) 这个已经在cran中了,不再需要使用git的方式安装啦
  8. R中激活这个核IRkernel::installspec()
  9. 以上内容在irkernel的github上面写到很清楚之后便可以使用jupyter进行R语言操作啦
  10. 参考北大李东风老师到R教材。http://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/index.html,配置环境。
  11. 要调用到包
    tidyverse
    bookdown
    xtable
    microbenchmark
    reshape
    dplyr
    pander
    readr
    ;在jupyter notebook 中R格式到一个文档中使用:install.packages() 可以一起安装或者分别安装都可以

单独文件格式转换

1.查看文件格式 文件属于表格形式文件。但是多出3行表头来说明数据到采集时间,采集方法等信息,这部分信息应该被我们略去。
2.如何去掉顶上的这几行?应该先把文件读进计算机,然后处理,最后以另外到格式输出,这样就可以处理啦
读取文件 读取文件最常用到函数是 readLine(file,n=number) 这个readLine函数读出到结果是一个list,其中每行属于一个元素,可以通过list到运算来解决读取特定行数到问题,代码如下:
open.file <- file(“file.txt”) # 这里要求必须在work dictrirory 中也就是程序可以找得到到地方的原始文件file.txt
data <- readLine(open.file) #数据读入到data中 data的格式是每行为元素到一个list
write.file <- file(“changedfile.txt”) #要写入到文件
data <- data[c(-1,-2,-3,-4)] # 把第1,2,3,4行删除,这是list基本操作
writeLine(data,write.file) # 把处理之后到数据写入write.file即changedfile.txt
closed(file.open)
closed(file.write)
3.这时可以看看新写入到文件
4.按道理来说这时便可以直接使用read_delim(“changedfile.txt”,delim=" ")read家族还有read_table2(), read_tsv(), read_fwf()这样几个函数可以灵活使用,table2是空格作为分割,其他到具体使用可以自己查找一下把文件按照CSV格式读取,但是考虑到需要表头项目可以在执行data <-data[c(-1,-2,-3,-4)]这里稍微修改下,即把这句修改为下面3句
data <-data[c(-1,-2,-3,-4)]
title <- c("a b c d e f g h i j k l m n ")
data <- c(title,data)
重新写入文件writeLine(data,write.file)
最后关闭打开到文件
5.读取文件mydata <-read_delim(“changedfile.txt”,delim=" ") 现在数据已经存在mydata中啦要生成csv文件只需要直接写成csv文件格式就可以啦
6.当然如果你发现colume的属性不对可以设置colume到参数
6.写csv格式文件 write(“file.csv”,mydata,is.na =TRUE) # 这里可能有点错误,其实数据有没有完成到项目以及NA项目,应该被清理掉,这部分下篇BLOG再研究说明。

多个文件到转换

首先找到要转换多少文件
setwd(“where/your/path”) #设置工作目录 在其中很多命令可用
filename.list <-dir() # 返回所有文件名字组成到list
numberofile.number <- length(filename.list)
changedfilename.list <- paste(“changed”,filename.list,sep="")
for (i in numberoffile.number){
open.file <- file(filename.list[i])
write.file <- file(changedfilename.list[i])
data <- readLine(open.file)
data <-data[c(-1,-2,-3,-4)]
title <- c("a b c d e f g h i j k l m n ")
data <- c(title,data)
writeLine(data,write.file)
closed(file.open)
closed(file.write)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值