在 R 中查询和转换数据类型
介绍
处理数据是数据科学专业人士的一项明显要求。处理数据的基础是了解最常见的数据类型,并掌握处理、查询和转换它们的知识。在本指南中,您将学习在 R 中查询和转换数据类型的技术。
数据类型
R 中有多种数据类型,其中最不可或缺的列出如下:
- 字符:文本(或字符串)值称为字符。将文本值赋给变量“t”将使其成为字符,如下所示。您可以使用 class ()或typeof()函数确认其类型。
t = "pluralsight"
class(t)
typeof(t)
输出:
1] "character"
[1] "character"
- 数字:像 3.5 这样的十进制值在 R 中称为数值。它是默认的计算数据类型。
N = 3.5
class(N)
输出:
1] "numeric"
变量N存储为数值,而不是整数。可以使用is.integer()函数检查。
is.integer(N)
输出:
1] FALSE
- 整数:如果要创建一个整数变量,可以使用as.integer()函数。此外,所有整数都是数字,但反之则不然。
i = as.integer(3.1)
print(i)
输出:
1] 3
- 逻辑:逻辑值通常通过比较两个或多个变量来创建。这些值用布尔值TRUE或FALSE表示。
x = 100
y = 56
x < y
输出:
1] FALSE
上面讨论了最常见的数据类型,但最重要的数据类型是数据框。
数据框
数据框是大多数数据科学项目的实际数据类型,因为它以表格格式组织。简而言之,数据框是一种特殊类型的列表,其中所有元素的长度均相等。
数据框通常在将数据导入 R 时由read_csv()和read.table()函数创建。您也可以使用data.frame()函数创建新的数据框。
df <- data.frame(rollnum = seq(1:10), h1 = 15:24, h2 = 81:90)
df
输出:
rollnum h1 h2
1 1 15 81
2 2 16 82
3 3 17 83
4 4 18 84
5 5 19 85
6 6 20 86
7 7 21 87
8 8 22 88
9 9 23 89
10 10 24 90
处理数据框的最常见方法是将平面文件(csv 或 Excel)导入 R 环境。下面的代码执行此任务并加载将在后续部分中使用的数据。
library(readr)
dat <- read_csv("data.csv")
glimpse(dat)
输出:
Observations: 585
Variables: 6
$ UID <chr> "UIDA467", "UIDA402", "UIDA354", "UIDA209", "UIDA256",...
$ Income <dbl> 36850.4, 45470.2, 53240.2, 198400.2, 83410.2, 42110.2,...
$ Credit_score <chr> "Satisfactory", "Satisfactory", "Satisfactory", "Satis...
$ approval_status <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, ...
$ Age <int> -12, -10, -3, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, ...
$ Purpose <chr> "Business", "Personal", "Travel", "Personal", "Persona...
输出显示有 6 个变量的 585 个观测值,如下所述。
UID:贷款申请人的唯一识别标签。
收入:申请人的年收入(以美元计)。
Credit_score:申请人的信用评分是否令人满意。
authorization_status:贷款申请是否被批准(“1”)或未被批准(“0”)。
年龄:申请人的年龄。
目的:申请贷款的原因。
检查和转换数据类型
对于数据科学和机器学习来说,变量的数据类型正确非常重要。首先,您将使用str()函数打印数据的结构。
str(dat)
输出:
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 585 obs. of 6 variables:
$ UID : chr "UIDA467" "UIDA402" "UIDA354" "UIDA209" ...
$ Income : num 36850 45470 53240 198400 83410 ...
$ Credit_score : Factor w/ 2 levels "Not _satisfactory",..: 2 2 2 2 1 2 2 2 2 2 ...
$ approval_status: Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ...
$ Age : int -12 -10 -3 23 23 23 23 23 23 24 ...
$ Purpose : Factor w/ 6 levels "Business","Education",..: 1 4 5 4 4 4 4 4 5 4
从上面的输出中,你可以看到数据有六个变量,三个数值变量和三个分类变量。你将从了解字符变量的级别开始。
table(dat$Credit_score)
输出:
Not _satisfactory Satisfactory
124 461
变量Credit_score只有两个级别,因此可以使用as.factor()函数将其转换为因子变量。
dat$Credit_score = as.factor(dat$Credit_score)
class(dat$Credit_score)
输出:
1] "factor"
接下来,检查变量Purpose的级别数。
table(dat$Purpose)
输出:
Business Education Furniture Personal Travel Wedding
43 184 37 161 122 38
变量Purpose有六个级别,使用以下代码将其转换为因子数据类型。
dat$Purpose = as.factor(dat$Purpose)
class(dat$Purpose)
输出:
1] "factor"
最后要进行的转换是针对变量approval_status。首先检查变量的类。
class(dat$approval_status)
table(dat$approval_status)
输出:
1] "integer"
0 1
186 399
变量approval_status的类别显示为整数,但它只接受两个值,零和一。实际上,这是一个分类变量,需要转换为因子。
dat$approval_status = as.factor(dat$approval_status)
class(dat$approval_status)
输出:
1] "factor"
所需的转换已经完成,可以使用下面的代码进行验证。
glimpse(dat)
输出:
Observations: 585
Variables: 7
$ UID <chr> "UIDA467", "UIDA402", "UIDA354", "UIDA209", "UIDA256",...
$ Income <dbl> 36850.4, 45470.2
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~