R语言 数据处理 – 与Tibbles一起工作
R是一种强大的语言,被分析师,数据科学家和商业用户用来执行各种任务,如统计分析,可视化,以及在多个领域开发统计软件。
数据整理是一个将原始数据重塑为更多结构化格式的过程,这将有助于从数据中获得更好的洞察力并做出更好的决策。
什么是Tibbles
Tibbles是 tidyverse 的核心数据结构,用于促进以整洁的格式显示和分析信息。Tibbles是一种新形式的数据框架,其中数据框架是R中最常用的数据结构,用于存储数据集。
Tibbles相对于数据框架的优势
- 所有Tidyverse软件包都支持Tibbles。
- Tibbles的打印格式比数据框架干净得多。
- 数据框架经常将字符串转换为因子,分析人员经常需要覆盖设置,而Tibbles不会尝试自动进行这种转换。
创建Tibbles的不同方法
- as_tibble():
第一个函数是作为tibble函数。这个函数是用来从一个现有的数据框架中创建一个tibble。
语法:
as_tibble(x, validate = NULL, …)
x 是一个数据框、矩阵或列表。
- tibble():
第二种方法是使用tibble()函数,用来从头创建一个tibble。
语法:
tibble(s…, rows = NULL)
s 代表一组名-值对。
- Import():
最后,您可以使用tidyverse的数据导入包,从外部数据源(如数据库或CSV文件)创建Tibble。
语法: import(pkgname …)
- library():
library()函数用于加载包的命名空间。
语法:
library(package, help, pos = 2, lib.loc = NULL)
注意:要想在R中找到更多的函数,请在函数名称后输入?。Eg: ?tibble。
让我们看看如何使用Rstudio IDE来使用上述函数的一些例子。我们将使用一个内置的数据集(CO2)草木植物的二氧化碳吸收量来创建一个tibble。
这个数据集由几个变量组成,如植物、类型、处理、浓度和吸收。处理这种类型的信息是很困难的,所以让我们把这些信息转换成一个tibble。让我们使用as_tibble()函数从二氧化碳数据集中创建一个名为sample_tibble的tibble。
as_tibble()的例子
这里我们使用 as_tibble() 函数将一个数据帧(CO2)转换为tibble。这需要你在Rstudio中安装tidyverse软件包。
library(tidyverse) # loading tidyverse package
sample_tibble <- as_tibble(CO2) # creating a tibble named sample_tibble
print(sample_tibble)
输出
tibble()的例子
第二种方法是使用 tibble() 函数从头开始创建一个tibble,所以我们将创建一些向量,如name, marks_in_Math, marks_in_Java, Fav_color等,并将它们传递给 tibble() 函数,该函数将它们转换为tibble。
library(tidyverse)
name <- c("surya", "sai", "Nihith", "prakash", "vikas", "mayur")
marks_in_Math <- c(91, 85, 92, 89, 90, 93)
marks_in_Java <- c(89, 91, 88, 91, 89, 87)
Fav_color <- c("Pink", "Red", "Yellow", "Green", "White", "Blue")
students <- tibble(name, marks_in_Math, marks_in_Java, Fav_color)
print(students)
输出
子集tibbles
数据分析师经常从tibble中提取单个变量,以便在分析中进一步使用,这被称为子集。当我们试图对一个tibble进行子集时,我们从tibble中提取一个矢量形式的单一变量。我们可以通过使用一些特殊的操作符来实现这一目的。
- $运算符
- [[]]操作符
$运算符
我们从Tibble中提取变量的第一个方法是使用()符号,操作符。为了做到这一点,我们将使用 tibble() 函数从头开始创建一个tibble。
library(tidyverse)
name <- c("surya", "sai", "Nihith", "prakash", "vikas", "mayur")
marks_in_Math <- c(91, 90, 91, 85, 90, 92)
marks_in_Java <- c(91, 91, 92, 91, 89, 93)
Fav_color <- c("Pink", "Red", "Yellow", "Green", "White", "Blue")
students <- tibble(name, marks_in_Math, marks_in_Java, Fav_color)
studentsFav_color
studentsmarks_in_Math
输出
[[]]操作符
从Tibble访问单个变量的第二个方法是使用方括号([[]])。我们将使用之前创建的同一个Tibble。
library(tidyverse)
name <- c("surya", "sai", "Nihith", "prakash", "vikas", "mayur")
marks_in_Math <- c(91, 90, 91, 85, 90, 92)
marks_in_Java <- c(91, 91, 92, 91, 89, 93)
Fav_color <- c("Pink", "Red", "Yellow", "Green", "White", "Blue")
students <- tibble(name, marks_in_Math, marks_in_Java, Fav_color)
students$Fav_color
students[["name"]]
students[["marks_in_Math"]]
输出:
过滤Tibbles
过滤提供了一种方法来帮助减少你的tibble中的行数。在执行过滤时,我们可以指定条件或特定标准,用来减少数据集中的行数。
filter() 函数
语法: filter(data, conditions)
数据代表Tibble的名字,而条件用于指定一个返回逻辑值的表达式。我们将使用学生的Tibble,这是我们在上面的例子中创建的。
library(tidyverse)
name <- c("surya", "sai", "Nihith", "prakash", "vikas", "mayur")
marks_in_Math <- c(91, 90, 91, 85, 90, 92)
marks_in_Java <- c(91, 91, 92, 91, 89, 93)
Fav_color <- c("Pink", "Red", "Yellow", "Green", "White", "Blue")
students <- tibble(name, marks_in_Math, marks_in_Java, Fav_color)
filter_students =90)
print(filter_students)
输出: