R语言加强版数据框-tibble类型

在R语言中进行数据分析处理的二维表格的数据结构有:

  • data.frame最基本,大多函数的设计基于此种结构;读写速度一般
  • data.table:在data.frame上的改进,读写速度最快;加入了索引操作,结合索引数据处理更方便
  • tibble:主要在dplyr和tibble包中有效,主要关注于列list,支持整洁格式;数据进行懒加载

三种数据结构出现顺序依次从早到晚。

本文将重点介绍最后一种数据结构tibble,介绍它会涉及到的R包和特点,这种类型的基本数据操作。

参考文章:

1.R语言数据科学新类型tibble:http://blog.fens.me/r-tibble/

2.新功能包集合网址:https://www.rstudio.com/products/rpackages/

目录

一、涉及到的相关包

二、tibble重新设定的特点

三、tibble数据框建立和操作

1.创建一个tibble类型的数据框

2.查看tibble类型的数据框的属性

3.数据类型转换

4.tibble数据查询

5.tibble数据操作

6.用于处理data.frame函数


 

 

library(tidyverse)

R语言加强版数据框-tibble类型_第1张图片

一、涉及到的相关包

  1. ggplot2 数据可视化
  2. dplyr 数据处理:https://github.com/tidyverse/dplyr
  3. tidyr 数据清理
  4. readr 数据提取:https://blog.rstudio.com/2015/04/09/readr-0-1-0/     轻松读取多种类型的表格数据。
  5. purrr 函数化编程:https://purrr.tidyverse.org
  6. tibble 数据类型定义

 

二、tibble重新设定的特点

tibble对data.frame做了重新的设定:

  • 不关心输入类型,可存储任意类型,包括list类型
  • 没有行名设置 row.names
  • 支持任意的列名
  • 会自动添加列名
  • 类型只能回收长度为1的输入
  • 会懒加载参数,并按顺序运行
  • 是tbl_df类型

三、tibble数据框建立和操作

以下为代码目录,详情看代码块实例。

1.创建一个tibble类型的数据框

2.查看tibble类型的数据框的属性

3.数据类型转换

4.tibble数据查询

5.tibble数据操作

6.用于处理data.frame函数

library(tidyverse)

#--1.创建一个tibble类型的数据框
t1<-tibble(x = 1:10, y =LETTERS[1:10])
t1
#tibble类型,会在输出时多一行,用来指定每一列的类型
#不能通过data.frame创建tibble
#可以通过list创建tibble

#--2.查看t1属性
class(t1)     #t1为tbl_df类型
#判断是不是tibble类型
is.tibble(t1)
#查看t1的属性
attributes(t1)
#查看t1的静态结构
str(t1)

#--3.数据类型转换
d1<-data.frame(x = 1:5, y =LETTERS[1:5])  #data.frame
d1
#data.frame -> tibble【as_tibble
d2<-as_tibble(d1)
d2
#tibble -> data.frame【as.data.frame
as.data.frame(d2)
#vector可以转型到tibble,反之不行
#list与tibble可以互相转换
#matrix与tibble可以互相转换

#--4.tibble数据查询
#法一:[]按列取,返回tibble
t1[2]
#法二:[[]]或$按列取,返回向量
t1$b
t1[[2]]
#按行取数据,这时一定要用,来做分隔符
t1[1:2,]
t1[1:2, 1]

#--5.tibble数据操作
#没有改变原数据的值,需要新赋值
#增加一列
add_column(t1, z = 0:9, w = 0)
#在最后,增加一行
add_row(t1, x = 99, y = 9)
#在第二行位置,增加一行
add_row(t1, x = 99, y = 9, .before = 2)

#--6.用于处理data.frame函数
#tibble还提供了一些用于处理data.frame的函数【行列名】
d1
#判断是否有叫x的列
has_name(d1,'x')
#判断是否有行名
has_rownames(d1)
#给d1增加行名
row.names(d1) <- LETTERS[1:5]; d1
#去掉行名
remove_rownames(d1)
#把行名转换为单独的一列
df2<-rownames_to_column(d1, var = "rowname"); df2
#把行索引转换为单独的一列
rowid_to_column(d1, var = "rowid")

#打印前10行,不限宽度
print(t1,n = 5, width = Inf)

 

你可能感兴趣的:(R,数据分析)