【R语言】基础知识

一、对象与变量

R语言中的所有事物都是对象,如向量、列表、函数,变量 、甚至环境等。它的所有代码都是基于对象object的操作,变量只是调用对象的手段。

1、对象

在R语言中,对计算机内存的访问是通过对象实现的。

R 复制代码
# 字符型向量
c('重庆','成都','贵州')

# 只有1个元素的数值型向量
c(1) 
# 或直接写成如下形式
1

# 列表
list(c('重庆','成都','贵州'), c(2),"你好!")

# 函数
function(x,y){
   x + y^2
}

# 环境
new.env()

2、变量

R语言对大小写敏感。

变量名称可以通过使用 . 来分开小写字母:variable.name ;也可以使用首字母大写的方式:variableName.

R 复制代码
# 变量的赋值操作
# 第一种方法
a <- 5
5 -> a
# 第二种方法
a = 5

# 可以将一个值同时赋给多个变量
x <- y <- z <- 78

# 第三种方法. assign函数赋值更适合于在循环中
assign('a', 20)

3、变量的列举与删除

ls()函数

all.names参数

如果想查看隐藏的变量(变量名称以.开头),可以将all.names参数置为TRUE:

pattern参数

在此参数中可以使用正则表达式。

ls.str()函数

用于依次输出变量名称和结构。

browseEnv()函数

也可提供与ls.str()类似的功能,只不过它的输出结果为HTML格式。

remove()函数

缩写成rm(),用于删除变量。

R 复制代码
# 删除变量x
rm(x)

若要删除当前环境的所有变量,则需要将参数list设置为ls()

R 复制代码
# 删除当前环境所有变量
rm(list=ls())

二、数据类型

1、常用的数据类型

数值型numeric、字符型character、逻辑性logical、复数型complex。

数值型又分为整数型integer、双精度型double。

typeof()函数

查看数据类型。

或者直接判断是否属于某种数据类型:

2、特殊值

5种特殊值:它们可以通过is.null()、is.na()、is.nan()、is.infinite()函数来判断是否为对应的特殊值。

  1. NULL:表示变量为空。
  2. NAN:双精度型;not a number;表示相应的计算是没有数学意义或者是不能正常执行的。
  3. NA:属于字符型;not available;表示缺失值
  4. Inf:双精度型;表示正无穷
  5. -Inf:双精度型;表示负无穷

以下是几个示例:

三、数据结构

常见的数据结构:向量、矩阵、数组、因子、列表和数据框

1、向量

向量是R语言中最核心、最基础的数据结构。

向量是一组数据类型相同的元素组成的序列,元素可以是数值型、字符型、逻辑型、复数型,按照元素的数据类型不同,便分为相应的类型:数值型向量、字符型向量......

标量

R语言中的标量是一个只有1个元素,或者长度为1的向量。

R 复制代码
# a是一个标量
a <- 2

length(a) # 1

is.vector(a) # TRUE

数值型向量

R语言默认数值是双精度型。使用c()函数创建:

将x,y连接在一起,得到新的向量z。

numeric()、integer()、double()函数

创建由0组成的指定长度的向量。

生成相邻元素相差1或者-1(步长)的序列,通过 ":"来实现(":" 运算符其实也是一个函数,它是seq()函数的一个特例)

创建从2到50,且步长为4的序列:

创建起点为10,长度为20,且步长为2的序列

字符型向量

全部由字符串组成。

比较字符向量中处于相同位置的元素是否相等。因为a的长度为1,b的长度为4,R语言会自动按照循环补齐的方式进行比较。

逻辑型向量

全部由逻辑值TURE(简写成T)和FALSE(简写成F)组成。

相关推荐
是娇娇公主~1 小时前
C++ 中 std::deque 的原理?它内部是如何实现的?
开发语言·c++·stl
SuperEugene1 小时前
Axios 接口请求规范实战:请求参数 / 响应处理 / 异常兜底,避坑中后台 API 调用混乱|API 与异步请求规范篇
开发语言·前端·javascript·vue.js·前端框架·axios
xuxie992 小时前
N11 ARM-irq
java·开发语言
wefly20173 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
luanma1509803 小时前
PHP vs C++:编程语言终极对决
开发语言·c++·php
寂静or沉默3 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
kyriewen114 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
娇娇yyyyyy5 小时前
QT编程(18): Qt QItemSelectionModel介绍
开发语言·qt
豆豆的java之旅5 小时前
软考中级软件设计师 数据结构详细知识点(含真题+练习题,可直接复习)
java·开发语言·数据结构
sthnyph5 小时前
QT开发:事件循环与处理机制的概念和流程概括性总结
开发语言·qt