R语言学习笔记3-基本类型篇

R语言学习笔记-基本类型篇

  • 基本类型介绍
  • 数值型(Numeric)
    • 整数型(Integer)
    • 浮点数型(Double)
    • 数值运算
    • 数值型 NA(缺失值)
  • 字符型(Character)
    • 字符型的特点和用途
    • 基本字符型示例
    • 含有特殊字符的字符型示例
    • 字符串连接和处理
    • 处理空字符串和空格
  • 逻辑型(Logical)
    • 基本逻辑型示例
    • 使用逻辑运算符
    • 逻辑型在条件语句中的应用
    • 逻辑型与向量运算
    • 逻辑型 NA(缺失值)
  • 因子型(Factor)
    • 因子型的特点和用途
    • 创建因子型变量
    • 使用因子型进行数据分析
    • 修改因子的水平和标签
  • 复数型(Complex)
    • 创建复数
    • 获取复数的实部和虚部
    • 复数的运算
    • 复数的模和参数表示
  • 类型转换
    • 数值型转换
      • 数值型转换为字符型
      • 字符型转换为数值型
    • 逻辑型转换
      • 数值型转换为逻辑型
      • 逻辑型转换为数值型
    • 因子型转换
      • 因子型转换为字符型
      • 因子型转换为数值型

基本类型介绍

1. 数值型(Numeric):用于存储数值数据,可以是整数或浮点数。例如:2, 3.14, -5
2. 字符型(Character):用于存储文本数据,必须用引号括起来。例如:“Hello, World!”, “R Programming”
3. 逻辑型(Logical):用于存储逻辑值,表示真(True)或假(False)。在 R 中用 TRUE 或 FALSE 表示逻辑值,也可以用 T 或 F 的简写形式
4. 因子型(Factor):可表示分类数据,具有预定义的取值范围和顺序。可通过 factor() 函数创建因子变量
5. 复数型(Complex):用于存储复数数据,由实部和虚部组成,形式为 a + bi,其中 a 和 b 是实数,i 是虚数单位

数值型(Numeric)

整数型(Integer)

整数是没有小数部分的数值。整数通常会自动转换为数值型,但可使用 as.integer() 函数明确指定为整数类型

# 自动转换为数值型
num1 <- 42
class(num1)  # 输出 "numeric"# 明确指定为整数型
num2 <- as.integer(10)
class(num2)  # 输出 "integer"

浮点数型(Double)

浮点数包含小数点,所有的数值默认为双精度浮点数

# 浮点数
num3 <- 3.14159
class(num3)  # 输出 "numeric"# 科学计数法表示
num4 <- 6.022e23  # 6.022 × 10^23
class(num4)  # 输出 "numeric"

数值运算

数值型支持常见的算术运算和数学函数,如加法、减法、乘法、除法以及三角函数、对数函数等

# 算术运算
result1 <- 10 + 5
result2 <- 10 / 2
result3 <- sin(pi/2)# 输出结果
print(result1)  # 输出 15
print(result2)  # 输出 5
print(result3)  # 输出 1 (sin(π/2) = 1)

数值型 NA(缺失值)

数值型可以是缺失值(NA),用来表示缺少数据或未知数据

missing_value <- NA

字符型(Character)

字符型可用于存储文本数据。字符型数据必须用引号(单引号或双引号)括起来,以区分其它数据类型

字符型的特点和用途

1. 存储文本数据:字符型主要用于存储字符串,例如单词、句子、文件路径等
2. 使用引号:字符型数据必须用引号括起来,可使用单引号 (') 或双引号 ("),但在 R 编程中推荐使用双引号
3. 灵活性:可以包含字母、数字、特殊字符等,几乎可以表示任何文本信息

基本字符型示例

# 使用双引号定义字符型变量
message <- "Hello, World!"
class(message)  # 输出 "character"# 使用单引号定义字符型变量
file_path <- 'C:/Users/Documents/data.csv'
class(file_path)  # 输出 "character"

含有特殊字符的字符型示例

# 包含特殊字符和空格的字符串
special_string <- "R is a statistical language."
class(special_string)  # 输出 "character"# 包含引号的字符串
quoted_string <- "He said, \"Hello!\""
print(quoted_string)  # 输出 He said, "Hello!"

字符串连接和处理

# 字符串连接
first_name <- "John"
last_name <- "Doe"
full_name <- paste(first_name, last_name, sep = " ")
print(full_name)  # 输出 "John Doe"# 获取字符串长度
name_length <- nchar(full_name)
print(name_length)  # 输出 8

处理空字符串和空格

# 空字符串
empty_string <- ""
class(empty_string)  # 输出 "character"# 去除字符串两端的空格
spaces_string <- "  Data Science  "
trimmed_string <- trimws(spaces_string)
print(trimmed_string)  # 输出 "Data Science"

逻辑型(Logical)

逻辑型用来表示逻辑值的数据类型,主要用于存储真(True)或假(False)两种逻辑状态

基本逻辑型示例

# 定义逻辑型变量
is_true <- TRUE
class(is_true)  # 输出 "logical"is_false <- FALSE
class(is_false)  # 输出 "logical"

使用逻辑运算符

# 逻辑与运算符 &&
result1 <- TRUE && FALSE
print(result1)  # 输出 FALSE# 逻辑或运算符 ||
result2 <- TRUE || FALSE
print(result2)  # 输出 TRUE# 逻辑非运算符 !
result3 <- !TRUE
print(result3)  # 输出 FALSE

逻辑型在条件语句中的应用

# 条件判断
age <- 25
is_adult <- age >= 18
if (is_adult) {print("成年人")
} else {print("未成年人")
}

逻辑型与向量运算

# 创建一个数值型向量
numbers <- c(5, 10, 15, 20, 25)# 逻辑条件判断
greater_than_10 <- numbers > 10
print(greater_than_10)  # 输出 TRUE FALSE TRUE TRUE TRUE# 使用逻辑向量过滤数据
numbers_filtered <- numbers[greater_than_10]
print(numbers_filtered)  # 输出 15 20 25

逻辑型 NA(缺失值)

逻辑型也可以表示缺失值(NA),在某些情况下用于表示未知或不适用的状态。

missing_value <- NA
is_missing <- is.na(missing_value)
print(is_missing)  # 输出 TRUE

因子型(Factor)

因子型是一种特定的数据类型,用于表示分类数据,通常具有预定义的取值范围和顺序。因子型数据在统计分析中特别有用,因其可指定数据的类别和顺序,以便在分析中进行正确的排序和比较

因子型的特点和用途

1. 存储分类数据:主要用于存储和表示有限个类别的数据,如性别(男、女)、教育水平(高中、本科、硕士)、喜好(喜欢、不喜欢)等
2. 预定义的水平:因子型数据由预先定义的水平(levels)组成,每个水平代表一个可能的类别值
3. 有序和无序因子:因子可以是有序的(ordered),其中水平有明确的顺序,或者是无序的(unordered),其中水平没有特定的顺序

创建因子型变量

# 创建一个无序因子
education <- c("高中", "本科", "硕士", "本科", "高中", "硕士")
education_factor <- factor(education)
print(education_factor)
# 输出:
# [1] 高中 本科 硕士 本科 高中 硕士
# Levels: 本科 硕士 高中# 查看因子的水平
levels(education_factor)
# 输出: "本科" "硕士" "高中"# 创建一个有序因子
temperature <- c("高", "低", "中", "中", "高", "低")
temp_factor <- factor(temperature, ordered = TRUE, levels = c("低", "中", "高"))
print(temp_factor)
# 输出:
# [1] 高 低 中 中 高 低
# Levels: 低 < 中 < 高# 查看有序因子的水平
levels(temp_factor)
# 输出: "低" "中" "高"

使用因子型进行数据分析

因子型在统计分析中很有用,特别是在绘图和汇总统计信息时

# 创建一个因子型向量
gender <- c("男", "女", "女", "男", "男")
gender_factor <- factor(gender)# 统计各水平的频数
table(gender_factor)
# 输出:
# gender_factor
# 女 男 
#  2  3

修改因子的水平和标签

# 创建一个因子
seasons <- c("春", "夏", "秋", "冬", "春", "夏")
seasons_factor <- factor(seasons)# 修改因子的水平顺序
seasons_factor <- factor(seasons_factor, levels = c("春", "夏", "秋", "冬"))# 修改因子的标签
levels(seasons_factor) <- c("Spring", "Summer", "Autumn", "Winter")print(seasons_factor)
# 输出:
# [1] Spring Summer Autumn Winter Spring Summer
# Levels: Spring Summer Autumn Winter

复数型(Complex)

在 R 语言中,并没有直接支持复数型作为基本的数据类型,复数通常在数学和工程领域中使用,但可以使用两个数值型的向量来表示复数的实部和虚部

创建复数

# 创建一个复数向量
complex_number <- complex(real = 3, imaginary = 4)
print(complex_number)
# 输出:
# [1] 3+4i

获取复数的实部和虚部

# 获取实部
real_part <- Re(complex_number)
print(real_part)
# 输出:
# [1] 3# 获取虚部
imaginary_part <- Im(complex_number)
print(imaginary_part)
# 输出:
# [1] 4

复数的运算

R 提供了一些内置函数来处理复数的运算,例如加法、乘法等

# 定义两个复数
z1 <- complex(real = 3, imaginary = 4)
z2 <- complex(real = -2, imaginary = 5)# 加法
sum_result <- z1 + z2
print(sum_result)
# 输出:
# [1] 1+9i# 乘法
product_result <- z1 * z2
print(product_result)
# 输出:
# [1] -26+7i

复数的模和参数表示

可以使用 Mod() 函数获取复数的模,使用 Arg() 函数获取复数的幅角(弧度)

# 获取模
modulus <- Mod(complex_number)
print(modulus)
# 输出:
# [1] 5# 获取幅角
argument <- Arg(complex_number)
print(argument)
# 输出:
# [1] 0.9272952

类型转换

数值型转换

数值型转换为字符型

可以使用 as.character() 函数将数值型转换为字符型

# 数值型转换为字符型
number <- 42
number_as_string <- as.character(number)
class(number_as_string)  # 输出 "character"

字符型转换为数值型

使用 as.numeric() 函数将字符型转换为数值型。注意,字符型必须表示为有效的数值形式,否则会产生 NA

# 字符型转换为数值型
number_as_string <- "42"
number <- as.numeric(number_as_string)
class(number)  # 输出 "numeric"

逻辑型转换

数值型转换为逻辑型

使用 as.logical() 函数将数值型数据转换为逻辑型,非零值为 TRUE,零值为 FALSE

# 数值型转换为逻辑型
number <- 1
logical_value <- as.logical(number)
class(logical_value)  # 输出 "logical"

逻辑型转换为数值型

逻辑型可以直接使用 as.numeric() 转换为数值型,TRUE 转换为 1,FALSE 转换为 0

# 逻辑型转换为数值型
is_true <- TRUE
number <- as.numeric(is_true)
class(number)  # 输出 "numeric"

因子型转换

因子型转换为字符型

使用 as.character() 函数将因子型数据转换为字符型

# 因子型转换为字符型
education <- factor(c("高中", "本科", "硕士"))
education_as_character <- as.character(education)
class(education_as_character)  # 输出 "character"

因子型转换为数值型

可以使用 as.numeric() 将因子转换为数值型,此时会得到因子水平的编码值

# 因子型转换为数值型
education <- factor(c("高中", "本科", "硕士"))
education_as_numeric <- as.numeric(education)
class(education_as_numeric)  # 输出 "numeric"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品原型设计:从概念到实现的完整指南

如果你是一位产品经理&#xff0c;那么你一定会和原型图打交道&#xff0c;产品原型是产品设计方案和底层逻辑的可视化表达&#xff0c;需要完整清晰地表达出产品目的及需求&#xff0c;在整个产品创造的过程中发挥着不可或缺的作用。而对于一些刚入行的产品经理来说&#xff0…

Instruct-GS2GS:通过用户指令编辑 GS 三维场景

Paper: Instruct-GS2GS: Editing 3D Gaussian Splats with Instructions Introduction: https://instruct-gs2gs.github.io/ Code: https://github.com/cvachha/instruct-gs2gs Instruct-GS2GS 复用了 Instruct-NeRF2NeRF 1 的架构&#xff0c;将基于 NeRF 的三维场景编辑方法迁…

4:表单和通用视图

表单和通用视图 1、编写一个简单的表单&#xff08;1&#xff09;更新polls/detail.html文件 使其包含一个html < form > 元素&#xff08;2&#xff09;创建一个Django视图来处理提交的数据&#xff08;3&#xff09;当有人对 Question 进行投票后&#xff0c;vote()视图…

工具推荐:滴答清单

官网地址&#xff1a;DIDA:Todo list, checklist and task manager app for Android, iPhone and Web 使用近一个月&#xff0c;特别方便&#xff0c;使用感受非常棒&#xff0c;功能全面。 我主要用了以下功能&#xff1a; 1、每日事项提醒&#xff1a;写作&#xff0c;背字…

Java中的next、nextLine、nextInt等方法的区别

在刷牛客题目的过程中对很多都要设置读取用户输入&#xff0c;而且很敏感&#xff0c;每次用到next这些方法都会犯迷糊&#xff0c;这次就用博客总结一下&#xff0c;回头忘了方便再看看。 next()用来读取字符串&#xff0c;但是遇到分隔符&#xff08;如空格、换行符、制表符&…

Python实现吃豆人游戏详解(内附完整代码)

一、吃豆人游戏背景 吃豆人是一款由Namco公司在1980年推出的经典街机游戏。游戏的主角是一个黄色的小圆点&#xff0c;它必须在迷宫中吃掉所有的点数&#xff0c;同时避免被四处游荡的幽灵捉到。如果玩家能够吃掉所有的点数&#xff0c;并且成功避开幽灵&#xff0c;就可以进入…

力扣第一题

1. 两数之和 提示 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可…

【测试设计】使用jenkins 插件Allure生成自动化测试报告

前言 以前做自动化测试的时候一直用的HTMLTestRunner来生成测试报告&#xff0c;后来也尝试过用Python的PyH模块自己构建测试报告&#xff0c;在后来看到了RobotFramework的测试报告&#xff0c;感觉之前用的测试报告都太简陋&#xff0c;它才是测试报告应该有的样子。也就是在…

射频硅基氮化镓:两个世界的最佳选择

当世界继续努力追求更高速的连接&#xff0c;并要求低延迟和高可靠性时&#xff0c;信息通信技术的能耗继续飙升。这些市场需求不仅将5G带到许多关键应用上&#xff0c;还对能源效率和性能提出了限制。5G网络性能目标对基础半导体器件提出了一系列新的要求&#xff0c;增加了对…

《妃梦千年》第二十八章:反间之计

第二十八章&#xff1a;反间之计 在经历了一系列的斗争和变故后&#xff0c;林清婉意识到&#xff0c;宫中的敌人和外部的敌人正在联手&#xff0c;他们不仅试图从外部攻破大周的防线&#xff0c;还在内部制造混乱。为了彻底解决这个问题&#xff0c;她决定采取反间之计&#…

【LeetCode刷题笔记】LeetCode.11.盛最多水的容器

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

CSAPP Lab5- MallocLab

实验目标 本实验需要用c语言实现一个动态的存储分配器&#xff0c;也就是你自己版本的malloc&#xff0c;free&#xff0c;realloc函数。 实验步骤 tar xvf malloclab-handout.tar解压文件 我们需要修改的唯一文件是mm.c&#xff0c;包含如下几个需要实现的函数 int mm_ini…

婴幼儿自闭症的六大警示前兆:家长需警惕的早期信号

婴幼儿自闭症是一种复杂的发育障碍&#xff0c;其早期症状往往较为微妙&#xff0c;但若能及早发现并干预&#xff0c;对孩子的成长至关重要。以下是婴幼儿自闭症的六个主要前兆&#xff1a; 首先&#xff0c;目光呆滞与反应迟钝。婴儿期&#xff0c;孩子应能对外界刺激如声音…

30 个测试工程师面试题

30 个面试题&#xff1a; Python 中的生成器函数是什么&#xff1f;如何使用&#xff1f;MySQL 中如何进行索引优化&#xff1f;请举例说明。正则表达式中的非贪婪模式如何实现&#xff1f;Python 中的装饰器有什么作用&#xff1f;请给出一个示例。MySQL 中的存储过程和函数有…

读书笔记-Java并发编程的艺术-第4章(Java并发编程基础)-第3节(线程间通信)

文章目录 4.3 线程间通信4.3.1 volatile和synchronized 关键字4.3.2 等待/通知机制4.3.3 等待/通知的经典范式4.3.4 管道输入 / 输出流4.3.5 Thread.join()的使用4.3.6 ThreadLocal的使用 4.3 线程间通信 线程开始运行&#xff0c;拥有自己的栈空间&#xff0c;就如同一个脚本…

Java字符串(String、字符串拼接、原理)

文章目录 一、String字符串1.1创建方式【直接赋值、new一个对象】1.1.1 使用字符串字面值直接赋值&#xff1a;&#xff08;1&#xff09;字符串字面量创建String对象的转换过程&#xff08;2&#xff09;一些方法&#xff08;3&#xff09;说明 1.1.2 使用new关键字创建字符串…

接口测试(1)

什么是接口测试 路线&#xff1a; 项目介绍 URL&#xff1a;统一资源定位符 HTTP协议 请求URL 请求行 请求方法 post/put 请求行 请求数据类型 content-type json 请求数据 请求体 响应状态码 响应行 响应数据类型 content-type json 响应数据 请响应体 用户名&#xf…

探索HTML5的设计原则:引领Web开发的未来方向

随着互联网的飞速发展&#xff0c;HTML5作为Web技术的核心标准之一&#xff0c;不仅极大地丰富了网页的表现力和交互性&#xff0c;还推动了Web应用向更加动态、高效、安全的方向迈进。HTML5的设计原则&#xff0c;体现了对用户体验、内容可访问性、跨平台兼容性以及未来可扩展…

Mybatis Plus 3.X版本的insert填充自增id的IdType.ID_WORKER策略源码分析

总结/朱季谦 某天同事突然问我&#xff0c;你知道Mybatis Plus的insert方法&#xff0c;插入数据后自增id是如何自增的吗&#xff1f; 我愣了一下&#xff0c;脑海里只想到&#xff0c;当在POJO类的id设置一个自增策略后&#xff0c;例如TableId(value "id",type …

Git 命令行快速入门

前言 &#xff08;1&#xff09;新手个人建议使用TortoiseGit这类图形化界面来上手学习。 &#xff08;2&#xff09;如果一定需要用命令行进行操作&#xff0c;可以按照B站&#xff1a;程式与网页开发者必备技能&#xff01;Git 和 GitHub 零基础快速上手&#xff0c;轻松掌握…