R语言中文本文件分割 符号 sep的用法

一般情况下:

csv 文件 sep = “,” # 以逗号分割

txt 文件 sep = “\t” #以制表符分割

其他文件 sep = " " #以空格分割

具体情况,具体调整

sep= 文件中的字段分离符,用于文件数据文本的读取和保存过程中指定分割符号。

补充:用R语言把超大文本文件拆分成几个小文本文件

近一段时间一直在研究一些医院的数据。

前两天遇到一个尴尬:想打开一个仅有3G左右的文本文件(有时候必须要打开,直接传到数据库满足不了需求),破电脑(4G内存的电脑)就是打不开(用的Notepad++)。

就是这造型:

上网搜了一些方法,下了一些比较不常用的文本处理工具和其它工具,也不理想。

得知好多人在许多场景都需要打开或者拆分8G甚至10G以上的文本文件,于是想着自己研究一下。

下面就是我用R来拆分大文本的过程

虽然方法比较笨,但是简单轻巧、思路清晰。

1.首先把你想要拆分的大文本文件放到R的当前工作目录下

我的文件名在这里叫details.txt。

2.用函数split_file()来拆分大文本文件

split_file()函数是自定义的一个函数,用来拆分超大文本文件。

它总共有两个参数filename和eachfile_lines_num,即split_file(filename,eachfile_lines_num)。

filename是指需要拆分的超大文本的名字,eachfile_lines_num是指拆分完的每一个文件中有多少行数据。

split_file()会返回一个数值,代表了总共拆分成的小文本的数量。

split_file()拆分出来的文件会放置在R当前的工作目录下。

使用如:

split_file("details.txt",1000000),它把名为details.txt的超大文本文件拆分为每个文件只有1000000行的一个个的小文本文件。

split_file()的细节:

file_split <- function(filename,eachfile_lines_num){                               #建立函数
	c <- file(filename,"r")                                                    #建立链接
	varnames <- paste("splitfile", 1:1000, sep = "_")                          #建立尽可能多但不要太多的动态变量名
	i <- 1                                                                     #初始值
	while(TRUE){
		assign(varnames[i],value = readLines(c,n = eachfile_lines_num))    #分别把从filename中读出来的数据存放在变量中
		write.table(get(varnames[i]),paste(varnames[i],".txt",sep = ""))   #分别把存放在变量中的数据写出到文件中
		if (length(get(varnames[i])) < eachfile_lines_num) break
		else i <- i + 1                                                    #判断循环停止条件
}
	return(i)                                                                  #返回文件数量
}

我执行完file_split("details.txt",500000)之后得到了30多个文件:

3.对拆分的文件进行处理

由于过程中用到了readLines(),因此拆出来的文件每一行是一个字符串,有引号。

这好像不符合要求,只需用Windows记事本或notepad++或其他文本处理应用处理一下就行。

在notepad++中执行“搜索 -> 替换”把双引号替换成\0就行了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • R语言-解决处理矩阵遇到内存不足的问题

    如下: Error : cannot allocate vector of size X Gb 类似于这种问题的可能处理办法: 1. 可以用matrix尽量不要用data frame; 2. 可以用integer matrix尽量不要用 double matrix; 3. 对于大量运算后最好加上一个gc(), 强制R语言回收内存: 4. 对于大矩阵而言用bigmemory包,可以将大矩阵放到临时文件中,不占用内存. 补充:R语言之内存管理 在处理大型数据过程中,R语言的内存管理就显得十分重要,以

  • R语言 查找满足条件的数并获取索引的操作

    1.在R语言中,如何找到满足条件的数呢? 例如给定一个向量c2,要求找到数值大于0的数: > c2 [1] 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.09 0.20 0.09 0.08 0.14 0.14 0.23 [15] 0.08 0.06 0.12 0.20 0.14 0.11 0.20 0.14 0.17 0.15 0.18 0.15 0.20 0.12 [29] 0.23 0.08 0.12 0.08 0.23 0.12 0.08 0.17 0.18 0

  • R语言ggplot2之图例的设置

    引言 图例的设置包括移除图例.改变图例的位置.改变标签的顺序.改变图例的标题等. 移除图例 有时候你想移除图例,使用 guides(). library(ggplot2) p <- ggplot(PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() p + guides(fill=FALSE) 改变图例的位置 我们可以用theme(legend.position=-)将图例移到图表的上方.下方.左边和右边. p <-

  • R语言数据框中的负索引介绍

    以R语言自带的mtcars数据框为例: 这是原始的mtcars数据: 这里只列出了前面几行数据. 然后负索引mtcars[,-2:-3],得到的结果 删除了第二列和第三列数据 所以R语言数据框中的负索引是指删除数据框中对应的列(或者行) ps:这和Python里面的规则好像不太一样,Python里的负索引好像是指倒数第几列(或者第几行),这里这两个软件区别还挺大的~~写个笔记提醒一下自己~ 补充:R语言中的负整数索引 看代码吧~ > x<-matrix(c(1,2,3,4,5,6,7,8,9)

  • 教你利用R语言测试电脑的性能

    利用R语言测试电脑的性能如何 同事新配了一个电脑,想用R语言编写一个程序,看一下电脑性能如何,让我写个代码测试一下. 我能怎么样,我也不懂如何测试电脑啊,那就计算一下矩阵的运算吧.因为我理解的电脑运行性能就是矩阵计算了. 编写代码 rm(list=ls()) set.seed(123) # 设置矩阵的行数 n = 10000 # 生成一个矩阵 value = rnorm(n*n, 10,3) mat = matrix(value,n,n) # 测试电脑性能 system.time({ # 矩阵求

  • R语言:数据筛选match的使用详解

    数据筛选是在分析中最常用的步骤,如微生物组分析中,你的OTU表.实验设计.物种注释之间都要不断筛选,来进行数据对齐,或局部分析. 今天来详解一下此函数的用法. match match:匹配两个向量,返回x中存在的返回索引或TRUE.FALSE match函数使用格式有如下两种: 第一种方便设置参数,返回x中元素在table中的位置 match(x, table, nomatch = NA_integer_, incomparables = NULL) 第二种简洁,返回x中每个元素在table中是

  • R语言 install.packages 无法读取索引的解决方案

    问题描述 在公司的Centos服务器上安装R的包,总是安装不成功,然后有如下提醒: Warning: 无法在貯藏處https://mirrors.ustc.edu.cn/CRAN/src/contrib中读写索引 Warning message: package 'DBI' is not available (for R version 3.2.2) 问题修复 [更好的方案请直接看最后边PS] 执行下边这条命令,随便选几个源. setRepositories(addURLs = c(CRANxt

  • R语言中文本文件分割 符号 sep的用法

    一般情况下: csv 文件 sep = "," # 以逗号分割 txt 文件 sep = "\t" #以制表符分割 其他文件 sep = " " #以空格分割 具体情况,具体调整 sep= 文件中的字段分离符,用于文件数据文本的读取和保存过程中指定分割符号. 补充:用R语言把超大文本文件拆分成几个小文本文件 近一段时间一直在研究一些医院的数据. 前两天遇到一个尴尬:想打开一个仅有3G左右的文本文件(有时候必须要打开,直接传到数据库满足不了需求),

  • 详解R语言中的表达式、数学公式、特殊符号

      在R语言的绘图函数中,如果文本参数是合法的R语言表达式,那么这个表达式就被用Tex类似的规则进行文本格式化. y <- function(x) (exp(-(x^2)/2))/sqrt(2*pi) plot(y, -5, 5, main = expression(f(x) == frac(1,sqrt(2*pi))*e^(-frac(x^2,2))), lwd = 3, col = "blue") library(ggplot2) x <- seq(0, 2*pi, b

  • 详解R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型

    在标准线性模型中,我们假设 .当线性假设无法满足时,可以考虑使用其他方法. 多项式回归 扩展可能是假设某些多项式函数, 同样,在标准线性模型方法(使用GLM的条件正态分布)中,参数  可以使用最小二乘法获得,其中  在  . 即使此多项式模型不是真正的多项式模型,也可能仍然是一个很好的近似值 .实际上,根据 Stone-Weierstrass定理,如果  在某个区间上是连续的,则有一个统一的近似值  ,通过多项式函数. 仅作说明,请考虑以下数据集 db = data.frame(x=xr,y=y

  • R语言中字符串的拼接操作实例讲解

    在R语言中 paste 是一个很有用的字符串处理函数,可以连接不同类型的变量及常量. 函数paste的一般使用格式为: paste(..., sep = " ", collapse = NULL) 其 中-表示一个或多个R可以被转化为字符型的对象:参数sep表示分隔符,默认为空格:参数collapse可选,如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量:如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间

  • R语言中逻辑回归知识点总结

    逻辑回归是回归模型,其中响应变量(因变量)具有诸如True / False或0/1的分类值. 它实际上基于将其与预测变量相关的数学方程测量二元响应的概率作为响应变量的值. 逻辑回归的一般数学方程为 y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...)) 以下是所使用的参数的描述 y是响应变量. x是预测变量. a和b是作为数字常数的系数. 用于创建回归模型的函数是glm()函数. 语法 逻辑回归中glm()函数的基本语法是 glm(formula,data,family) 以下是

  • R语言中时间序列分析浅析

    时间序列是将统一统计值按照时间发生的先后顺序来进行排列,时间序列分析的主要目的是根据已有数据对未来进行预测. 一个稳定的时间序列中常常包含两个部分,那么就是:有规律的时间序列+噪声.所以,在以下的方法中,主要的目的就是去过滤噪声值,让我们的时间序列更加的有分析意义. 语法 时间序列分析中ts()函数的基本语法是 timeseries.object.name <- ts(data, start, end, frequency) 以下是所使用的参数的描述 data是包含在时间序列中使用的值的向量或矩

  • c语言中字符串分割函数及实现方法

    1.问题引入 自己在写一个linux下的模拟执行指令的时候,遇到了输入"cat a.c",要将该字符串分解成cat和a.c两个单独的字符串,虽然知道有strtok的存在,但是想自己尝试写一下,于是就自己写了一个,不过总是遇到这样或那样的问题,虽然最后调通了,不过确浪费了不少时间:后来作业交上去以后又仔细阅读了strtok函数,发现原来linux下已经改成strsep,所有在这里就写一下自己所走的过程. 2.自己写的字符串分割函数:用于分割指令,比如cat a.c最后会被分割成cat和a

  • 详解R语言中生存分析模型与时间依赖性ROC曲线可视化

    R语言简介 R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 人们通常使用接收者操作特征曲线(ROC)进行二元结果逻辑回归.但是,流行病学研究中感兴趣的结果通常是事件发生时间.使用随时间变化的时间依赖性ROC可以更全面地描述这种情况下的预测模型. 时间依赖性ROC定义 令 Mi为用于死亡率预测的基线(时间0)标量标记. 当随时间推移观察到结果时,其预测性能取决于评估时间 t.直观地说,在零时间测量的标记值应该

  • R语言中向量和矩阵简单运算的实现

    一.向量运算 向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量. 1.R语言向量的产生方法 > x <- c(1,2,3) > x [1] 1 2 3 2.向量加减乘除都是对其对应元素进行的,例如下面 > x <- c(1,2,3) > y <- x*2 > y [1] 2 4 6 (注:向量的整数除法是%/%,取余是%%.) 3.向量的内积,有两种方法. 第一种方法:%*% > x

  • R语言中对数据框的列名重命名的实现

    报错类型 Error: All arguments must be named plyr中的rename和dplyr中的rename用法是不同的. plyr::rename rename(data, c(old=new)) dplyr::rename rename(data, new = old) Example 比如, 默认的是plyr的rename, 运行下面命令, 会报错: d <- data.frame(old1=1:3, old2=4:6, old3=7:9) d library(ti

随机推荐