我的编程空间,编程开发者的网络收藏夹
学习永远不晚

R语言-如何读取前n行数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

R语言-如何读取前n行数据

通常我们读取文件时都会读取全部的文件然后再进行操作,但是当读取的数据量很大是读取的时间会很长,而且占用RAM,对于写测试代码有点不方便。

所以只读取前n行数据是一个挺不错的函数


##file:读取文件路径
##n:读取的前n行
##header:是否有标题行
readfile<-function(file, n=1000, header=T){
  pt <- file(file, "r")
  name <- NULL
  if(header){
    name <- strsplit(readLines(pt, 1), split=',')[[1]];  #读取标题
    f1 <- readLines(pt, n)
    data <- read.table(text=f1, sep=',', col.names=name)
  }else{
    data <- read.table(text=f1, sep=',')
  }
  close(pt)
  data 
}

测试,最近制作linux启动盘误将移动硬盘当U盘,要死要死的,近500G资料丢失,因为制成启动盘所以资料还找不回来。

所以没有大型数据做测试。

之前200M的文件本人电脑上读取前10000行也是秒读的。


(data <- readfile(file="mtcars.csv", n=5, header=T))
       X..        X.mpg. X.cyl. X.disp. X.hp. X.drat.  X.wt.
1       Mazda RX4   21.0    6   160     110    3.90   2.620  
2   Mazda RX4 Wag   21.0    6   160     110    3.90   2.875  
3      Datsun 710   22.8    4   108      93    3.85   2.320  
4  Hornet 4 Drive   21.4    6   258     110    3.08   3.215  


class(data)
[1] "data.frame"

补充:R语言(数据读写操作)

本节介绍一些实用的数据处理函数(如行、列合并),以及如何从各种数据源读、写数据。

实用函数

函数 含义
length() 对象的长度。如 2 行 3 列的矩阵,其长度为 6。
dim() 对象的维度。如 2 3 表示对象是二维的,有 2 行 3 列。
str() 对象的结构。常用于查看数据框各列的数据类型、或者因子的分级数量。
class() 对象的类。比如矩阵的返回结果是 matrix。
typeof() 对象内数据的类型。比如矩阵的返回结果是 integer。
mode() 对象的模式。比如矩阵会返回 numeric。
names() 对象中各成分的名称。
cbind() 按列合并多个对象。
rbind() 按行合并多个对象。
objectname 输出对象。
head() 输出对象的前部,对于数据框而言是前6行。通过 head(obj, N) 来指定输出前 N 行。
tail() 类似地,输出对象的后部。
ls(NULL) 无参数函数。显示当前所有对象的名称列表。
rm() 删除单个或多个对象。使用 rm(list = ls()) 可以删除除句点开头的隐藏对象外的所有对象。

一个 ls() 函数的例子:


a <- matrix(1:6, nrow=2, ncol=3)ls() # 目前的对象只有 a

‘a'

手动输入

使用需要赋值的 edit() 函数,或者无需写在赋值语句内的 fix() 函数。


dt <- data.frame(age = numeric(0), gender = character(0), weight = numeric(0))# dt <- edit(dt)  # 需要自赋值# fix(dt)  # 无需自赋值

遗憾的是,在 Jupyter Notebook 现行的版本中,尚且不支持 edit() 函数。不过用户可以使用 fix() 函数。

读取文件

关于怎样读取来自 URL 地址的网络文件,R 可以实现,但这里不做讨论。以下只讨论本地数据源的读写。

分隔符文件

利用 read.table() 函数即可。其常用的参数有:


read.table(file, [header=T/F, sep=" ", row.names=, col.names=, na.strings=, 
       colClasses=, quote=, skip=, stringAsFactors=T/F,])

其中,可选参数的含义大多较好理解:

header 表示文件首行是否是列名而不是数据;

sep 是列间分隔符;na.strings 指定一个字符向量,内部所有的元素在读取时会被转换为 NA;

colClasses 用于指派各列的类型,如 =c(“numeric”, “character”, “NULL”) 指定了前两列的类型并跳过了第三列;

skip 用于跳过文件的最开始的若干行;

stringAsFactors 为 TRUE(默认值)时表示字符向量按因子处理,设为 FALSE 可以提升大文本处理速度。


data.path <- paste(getwd(), '/data/iris.data.csv', sep='')dt <- read.table(data.path, header=T, sep=",")head(dt)
X5.1 X3.5 X1.4 X0.2 Iris.setosa
4.9 3.0 1.4 0.2 Iris-setosa
4.7 3.2 1.3 0.2 Iris-setosa
4.6 3.1 1.5 0.2 Iris-setosa
5.0 3.6 1.4 0.2 Iris-setosa
5.4 3.9 1.7 0.4 Iris-setosa
4.6 3.4 1.4 0.3 Iris-setosa

# 利用 str() 函数查看其信息str(dt)

'data.frame':	149 obs. of  5 variables:
 $ X5.1       : num  4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 5.4 ...
 $ X3.5       : num  3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 3.7 ...
 $ X1.4       : num  1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 1.5 ...
 $ X0.2       : num  0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 0.2 ...
 $ Iris.setosa: Factor w/ 3 levels "Iris-setosa",..: 1 1 1 1 1 1 1 1 1 1 ...

须知:

如果列名中包含空格,R 会将空格替换为句点。

多数情况下,stringAsFactors 可以设为 FALSE。但是本例中的字符变量表示植物的种类,此处读成因子是正确的。

函数 read.csv() 能够读取 csv 文件,但是功能不如 read.table() —— 后者能处理非 csv 文本。

处理 Excel 文件

读取一个 Excel 文件最佳的方式,是预先将其转为 csv 格式,并用上述的 read.table() 方法读取。

你也可以查找关于 xlsx 包的相关内容,来获知如何直接操作 xlsx 文件。此处略过不提。

可以看一下以前写的文章:

统计软件数据:SAS/SPSS/Stata

需要用到 foreign 包。

SAS:使用 read.ssd()。如果你安装了 SAS,可以使用 Hmisc 包的 sas.get()。

SPSS:使用 read.spss(),或者 Hmisc 包的 spss.get()。

Stata:使用 read.data()。

数据库

一个方法是使用 ODBC 接口。针对你的数据库类型,安装 ODBC 驱动;然后在 R 中安装 RODBC 包。

另一个方法是使用 JDBC 接口,只不过需要 RJDBC 包。

写入文件

在我们对于数据进行清洗之后,往往需要把清洗结果输出到一个新文件中。这里就以 csv 格式为例吧。一个通常的 write.table()/write.csv() 的例子:


write.csv(dt, "filename.csv", row.names=F)

其中 row.names 指定为 FALSE,否则第一列会生成行号一样的数据。

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

R语言-如何读取前n行数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

R语言中怎么读取前n行数据

小编给大家分享一下R语言中怎么读取前n行数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的
2023-06-14

R语言如何读取前几行数据

在R语言中,你可以使用head()函数来读取数据的前几行。head()函数的语法如下:head(data, n)其中,data是你要读取的数据集,n是你要读取的行数。默认情况下,head()函数会返回数据集的前6行。如果你想要读取更多或更少
2023-09-11

R语言怎么读取SQLite数据库

在R语言中,可以使用RSQLite包来读取SQLite数据库。首先需要安装RSQLite包,然后使用以下代码读取SQLite数据库:# 安装RSQLite包install.packages("RSQLite")# 加载RSQLite包
R语言怎么读取SQLite数据库
2024-04-09

R语言如何读取excel数据的简单方法

本篇内容主要讲解“R语言如何读取excel数据的简单方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“R语言如何读取excel数据的简单方法”吧!安装库安装xlsxinstall.package
2023-06-08

R语言中如何读取Matlab文件

在R语言中,可以使用readMat函数从Matlab文件中读取数据。首先需要安装R.matlab包,然后使用library(R.matlab)来加载该包。然后使用readMat函数来读取Matlab文件中的数据,例如:library(R.
R语言中如何读取Matlab文件
2024-04-08

R语言中如何读取CSV文件

在R语言中,可以使用read.csv()函数来读取CSV文件。例如,假设我们有一个名为data.csv的CSV文件,可以使用以下代码将其读取到R环境中:data <- read.csv("data.csv")在上面的代码中,“data.c
R语言中如何读取CSV文件
2024-04-08

R语言中如何读取Parquet文件

在R语言中,可以使用arrow包来读取Parquet文件。首先需要安装arrow包,然后使用arrow::read_parquet()函数来读取Parquet文件。以下是一个示例代码:# 安装arrow包install.package
R语言中如何读取Parquet文件
2024-04-08

r语言读取数据怎么设置小数位数

在R语言中,可以使用options()函数来设置小数位数。具体地,可以通过options(digits = n)来设置显示小数的位数,其中n为想要显示的小数位数的个数。例如,要设置显示2位小数,可以使用以下代码:options(digi
r语言读取数据怎么设置小数位数
2024-03-04

r语言怎么取出特定数据行

在R语言中,可以使用以下几种方法来取出特定数据行:使用索引值:可以使用方括号 [] 来指定要取出的行的索引值。例如,要取出第三行的数据,可以使用 data[3, ]。使用逻辑条件:可以使用逻辑条件来筛选要取出的行。例如,要取出满足某个条件的
2023-10-26

R语言中怎么使用SQL语句读取数据库数据

在R语言中使用SQL语句读取数据库数据,一般可以通过以下步骤实现:首先,需要安装并加载适当的R包来连接数据库。常用的包包括DBI和RODBC。使用dbConnect()函数连接到数据库,指定数据库类型、主机名、用户名、密码等连接信息。使用d
R语言中怎么使用SQL语句读取数据库数据
2024-04-24

R语言中如何读取Apache Arrow文件

在R语言中,可以使用arrow包来读取Apache Arrow文件。首先需要安装arrow包,可以使用以下命令来安装:install.packages("arrow")安装完成后,可以使用以下代码来读取Apache Arrow文件:li
R语言中如何读取Apache Arrow文件
2024-04-08

如何用R语言数据合并一行

本篇内容介绍了“如何用R语言数据合并一行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据的合并需要的函数cbind(),rbind(),b
2023-06-09

R语言如何使用ifelse进行数据分组

这篇文章主要介绍R语言如何使用ifelse进行数据分组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来研究,以揭示内在的联系和规
2023-06-14

R语言中怎么读取并处理地理空间数据

在R语言中,可以使用sf包来读取和处理地理空间数据。以下是一个简单的示例:首先,你需要安装sf包:install.packages("sf")然后,加载sf包:library(sf)读取地理空间数据,例如一个shapefile文件:# 读取
R语言中怎么读取并处理地理空间数据
2024-04-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录