R语言--变量与数据类型

R语言的数据分类

R语言的数据类型较多,但都是动态声明,即变量不会声明为某种数据类型。变量分配为R对象

  • 向量
  • 列表
  • 矩阵
  • 数组
  • 数据帧
  • 因子
    下面是几种最简单对象的类型
# Atomic vector of type character.
print("abc");#character

# Atomic vector of type double.
print(12.5)#numeric

# Atomic vector of type integer.
print(63L)#integer

# Atomic vector of type logical.
print(TRUE)#logical

# Atomic vector of type complex.
print(2+3i)#complex

# Atomic vector of type raw.
print(charToRaw('hello'))#raw

向量vector

最简单的是向量类型,即使用c()的形式声明。
以下示例中,如果其中一个元素是字符,则非字符值被强制转换为字符类型

# The logical and numeric values are converted to characters.
s <- c('apple','red',5,TRUE)
print(s)

实际上,向量的多元素可以用冒号表示,比如

v <- 6.6:12.6
print(v)
w <- 3.8:11.4

即表示从6.6到12.6,逐次加一构成的向量;w表示从3.8逐次加一到10.8。还可以用函数创建:

# Create vector with elements from 5 to 9 incrementing by 0.4.
print(seq(5, 9, by = 0.4))

如果其中一个元素是字符,则非字符值被强制转换为字符类型。

# The logical and numeric values are converted to characters.
s <- c('apple','red',5,TRUE)
print(s)

访问向量元素时,可以用‘[ ]‘填入适当条件作为索引。并且,向量支持数值运算,但必须是相同大小的。

列表list

创建列表用list函数,并且其中可以包含几乎任何数据类型,可以给list中的每个元素命名。

# Create a list containing a vector, a matrix and a list.
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2), list("green",12.3))

# Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")

# Show the list.
print(list_data)

列表访问

访问列表元素既可以用序号直接索引,也可以用名称索引

# Access the first element of the list.
print(list_data[1])

# Access the list element using the name of the element.
print(list_data$A_Matrix)

列表操作

操纵列表元素时,直接进行赋值操作。另外可以通过merged.list <- c(list1,list2)合并列表。

# Convert the lists to vectors.
v1 <- unlist(list1)
v2 <- unlist(list2)

矩阵matrix

在R语言中创建矩阵的基本语法是

matrix(data, nrow, ncol, byrow, dimnames)
  • 数据是成为矩阵的数据元素的输入向量。
  • nrow是要创建的行数。
  • ncol是要创建的列数。
  • byrow是一个逻辑线索。 如果为TRUE,则输入向量元素按行排列。
  • dimname是分配给行和列的名称。

    矩阵访问元素

    访问矩阵的元素直接用中括号填入矩阵下标访问,即\(a_{23}=M[2,3]\)。或者用单一下标直接访问整行或整列,即\(a_{13},a_{23},\cdots,a_{m3}=M[,3]\)。

    矩阵计算

    使用R运算符对矩阵执行各种数学运算。 操作的结果也是一个矩阵。对于操作中涉及的矩阵,维度(行数和列数)应该相同。

    数组

    数组是可以在两个以上维度中存储数据的R数据对象。下面的例子实际上进行创建数组,以及数组命名的步骤:

# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c("COL1","COL2","COL3")
row.names <- c("ROW1","ROW2","ROW3")
matrix.names <- c("Matrix1","Matrix2")

# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names, matrix.names))
print(result)

同样的,数组的访问类似于矩阵,以上数组有三个维度,访问时用中括号以及两个逗号可以提取一个,或多个元素

print(array[1,3,4])
print(array[3, ,2])
print(array[2, , ])

操作数组的元素通过访问数组的部分元素来执行。比如可以用两个逗号和一个维度的数字,来提取出矩阵。
我们可以使用apply()函数在数组中的元素上进行计算。

apply(x, margin, fun)
  • x是一个数组。
  • margin是所使用的数据集的名称。
  • fun是要应用于数组元素的函数
    从而进行数组内部的运算

    因子

    在R语言中,名义变量和有序变量可以使用因子来表示。语法格式为

f <- factor(x=charactor(), levels, labels=levels, exclude = NA, ordered = is.ordered(x), namax = NA)
  • levels:因子数据的水平,默认是x中不重复的值;
  • labels:标识某水平的名称,与水平一一对应,以方便识别,默认取levels的值;
  • exclude:从x中剔除的水平值,默认为NA值;
  • ordered:逻辑值,因子水平是否有顺序(编码次序),若有取TRUE,否则取FALSE;
  • nmax:水平个数的限制。
    gl()函数用于定义有规律的因子向量,其语法格式如下
gl(n, k, length = n*k, labels = 1:n, ordered = FALSE)
  • n: 正整数,表示因子的水平个数
  • k:正整数,表示每个水平重复的次数;
  • length: 正整数,表示因子向量的长度,默认为n*k
  • labels: 表示因子水平的名称,默认值为1:n
  • ordered: 逻辑变量,表示因子水平是否是有次序的,默认值为FALSE
    并且factor()函数可以把向量data转化为factor。简单来说,因子就是一段具有二元层级顺序的有限序列,print打印出的是其level层级。数据帧(data.frame)中的每一列也可看做因子。
v <- gl(3, 4, labels = c("Tampa", "Seattle","Boston"))
print(v)
# 结果为
Tampa   Tampa   Tampa   Tampa   Seattle Seattle Seattle Seattle Boston
[10] Boston  Boston  Boston
Levels: Tampa Seattle Boston

数据帧

创建数据帧

# Create data frame
new.address <- data.frame(
   city = c("Lowry", "Charlotte"),
   state = c("CO", "FL"),
   zipcode = c("80230", "33949"),
   stringsAsFactors = FALSE
)

并且通过str()函数可以看到数据帧的结构。可以通过应用summary()函数获取数据的统计摘要和性质。也可以提取

# Extract Specific columns.
result <- data.frame(emp.data$emp_name,emp.data$salary)
print(result)

# 先提取前两行,再提取所有列
# Extract first two rows.
result <- emp.data[1:2,]

# 也可以一并提取
result <- emp.data[c(3,5),c(2,4)]

要扩展数据帧只需使用新的列名称添加列向量,注意要使用$对数据帧名称进行索引。或者,添加行用rbind()函数,添加列用cbind()

参考

https://www.w3cschool.cn/

原文地址:https://www.cnblogs.com/Dear-Mozart/p/11258829.html

时间: 2024-11-10 13:15:50

R语言--变量与数据类型的相关文章

R语言变量作用域

语言采用的是Lexical Scoping(词法作用域).词法作用域,又称静态作用域,即变量定义后的作用域是不变的. 在函数的主体里面,变量是分为被约束的.局部的.或自由的三种.被约束的变量是指匹配函数形式参数的变量.局部变量是指,在函数主题内创建和定义的变量.自由变量指的是那些既不是 局部也不是被约束的变量.当一个函数主体被求值,确定一个局部或 被约束变量的值没有问题.作用域规则决定了一个语言如何为自由变量 找恰当的值. 在R中,自由变量的取值是由它所在函数定义的环境(environment)

R语言编程艺术# 数据类型向量(vector)

R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用typeof(x)函数查询. > #插入向量元素 > x <- c(88,5,12,13) > x [1] 88 5 12 13 > x <- c(x[1:3],168,x[4]) #插入168数字在13之前 > x [1] 88 5 12 168 13 > 2.

R语言变量赋值

变量可以使用向左,向右且等于操作符来分配值.可以使用 print() 或 cat() 函数打印变量的值.cat() 函数将多个项目并成连续并打印输出. # Assignment using equal operator. var.1 = c(0,1,2,3) # Assignment using leftward operator. var.2 <- c("learn","R") # Assignment using rightward operator. c

R语言应用

文章参考  << R 数据分析  -- 方法与案例详解  >> R的官方网站是http://www.r-project.org, 在R官方主页点击download  R,然后选择对应的镜像后,在右侧下载和安装包栏目里会 出现三种操作系统的R版本(Linux.(Mac)  OS  X.Windows),选择点击相应的操作系 统后,再选择点击base就会进入R的下载页面,在页面上会出现R的最新版本和安装说明等 不过,要使用RStudio,除了安装R开发环境后,还需要到 htt

R语言笔记之数据篇

R语言杂七杂八 与R语言有关的应用工具 探索性数据分析 统计推断 回归分析 机器学习-分类问题 R与Rstudio的获取与安装 包package一种扩展R基本功能的机制集成了众多函数 获取包 导入包libraryname 获取帮助 R语言特点 R语言语法基础之数据篇 R语言中的数据 R语言支持的数据类型 基本数据结构 一维数据类型 向量 vocter 1创建 2提取子集 因子 factor 1创建 2提取子集 二维数据类型 矩阵 matrix 1生成矩阵 1matrix方法 2 修改dim属性来

R语言在数据处理上的禀赋之——可视化技术(一)

本文首发 https://program-dog.blogspot.com R语言在可视化上可谓非常出众,想必这也是为什么R语言在数据处理方面受到追捧的原因之一. 上一节已经大体了解了R语言的基本数据类型,以及优势所在.R的可视化技术同样也是优势大大滴.这也是R的数据类型为可视化立下汗马功劳,为啥这样说呢? Java的可视化技术 我们再拿Java开刀,和做一下对比.希望Java他老爹不要见怪.大家都知道,java做图真心说不上漂亮,为什么又拿java做对比呢?原因之一是我对java比较熟悉一点,

R语言调用C++

R语言跨界调用C++ R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器.随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长.现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言. 要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域.让我们

R语言数据类型

R语言用来存储数据的对象包括: 向量, 因子, 数组, 矩阵, 数据框, 时间序列(ts)以及列表, 下面讲意义介绍. 1. 向量(一维数据): 只能存放同一类型的数据 语法: c(data1, data2, ...), 访问的时候下标从1开始(和Matlab相同); 向量里面只能存放相同类型的数据. > x <- c(1,5,8,9,1,2,5) > x [1] 1 5 8 9 1 2 5> y <- c(1,"zhao") # 这里面有integer和

C语言核心技术-变量和数据类型

C语言核心技术-变量和数据类型 C语言核心技术 2.1 计算机的计算单位 2.1.1 容量单位 2.1.2 速度单位 2.2 数据类型 2.2.1 数据为什么要分类 2.2.2 C语言常用基本数据类型 2.2.3 sizof关键字查看数据类型占据的内存容量 2.2.4 数据的有符号和无符号 2.2.5 数据类型的极限 2.3 常量 2.4 变量 2.4.1 变量的本质 2.4.2 变量的定义 2.4.3 变量的初始化 2.4.4 变量的声明 2.4.5 变量的使用 2.5 读取键盘的输入 2.6