今天学习的主要内容是R语言中字符串、列表的基础知识和使用方法。
R语言字符串
字符串可以使用一对单引号'这里可以添加文字'
或一对双引号"这里也可以"
来表示。同一种引号不可以嵌套使用,如下:
- 单引号字符串中可以包含双引号,不可以包含单引号。
- 双引号字符串中可以包含单引号,不可以包含双引号。
字符串的操作
- paste函数
该函数能拼接字符串,默认语法格式为paste(..., sep = " ", collapse = NULL)
其中sep参数代表拼接时分隔符,默认是一个空格。如果拼接的元素是向量,那么先拼接每个元素,然后用collapse
参数进行连接。比如下方示例,letters
函数能依次生成大写字母,1:3
表示从1到3依次的整数,结果中先是一个字母连接一个数字,然后将三部分用“和”连接。
> paste(letters[1:3],1:3,sep = "+",collapse = "和")
[1] "a+1和b+2和c+3"
- format函数
语法格式为format(x, digits, nsmall, scientific, width, justify = c("left", "right", "centre", "none"))
参数说明:
- x : 输入对向量
- digits : 显示的位数
- nsmall : 小数点右边显示的最少位数
- scientific : 设置科学计数法
- width : 通过开头填充空白来显示最小的宽度
- justify:设置位置,显示可以是左边、右边、中间等。
> print(format(1.324,digits=2))
#显示两位,最后一位四舍五入
[1] "1.3"
> print(format(1.324,scientific = TRUE))
#使用科学计数法
[1] "1.324e+00"
> print(format(1.2,nsmall = 5))
#小数点后侧最少显示多少位,没有的用0代替
[1] "1.20000"
> print(format(6))
#将数字转为字符串
[1] "6"
> print(format(1.6,width = 5))
# 宽度设为5,如果位数不够在前面自动加空格,如果位数超出无变化。
[1] " 1.6"
> print(format("shengxinbiji",width = 17,justify = "c" ))
#字符串对齐方式选择,左对齐l,右对齐r,居中c
[1] " shengxinbiji "
- nchar函数
用于统计字符串的长度,语法格式为nchar()
,也可以统计向量或数字。如下
> nchar("shengxinfenxibiji")
[1] 17
- substring函数
语法结构为substring("字符串",开始截取位置,结束截取位置)
,使用如下:
> substring("shengxinfenxibiji",9,13)
[1] "fenxi"
# 将输入字符串从第9位到第13位之间内容截取出来
R语言列表
列表是 R 语言的对象集合,可以用来保存不同类型的数据,可以是数字、字符串、向量、另一个列表等,当然还可以包含矩阵和函数。
R语言使用list()
命令来创建列表,创建一个包含多种数据结构的列表,用names()
命名元素,并输出它,如下:
list_one = list("shengxin","biji",c(1,2,3),4)
names(list_one) = c("a","b","c","d")
print(list_one)
#输出结果如下:
$a
[1] "shengxin"
$b
[1] "biji"
$c
[1] 1 2 3
$d
[1] 4
# 命名后,可以使用“列表名$元素名”调取指定内容
print(list_one $ a)
[1] "shengxin"
- 操作列表元素
可以对列表进行添加、删除、更新的操作。下面进行示例:
> # 首先创建一个包含字符串、矩阵、列表的列表
> list_two = list(c("sheng","xin"),matrix(c(1,2,3,4,5,6),nrow = 2),list("bi ji",7))
> # 对元素进行命名
> names(list_two) = c("zifu","juzhen","liebiao")
> # 添加元素
> list_two[4] = "new" #列表后面加方括号代表列表的第几个元素
> print(list_two[4])
[[1]]
[1] "new"
> # 删除元素
> list_two[4] = NULL #删除即把值和值的位置全部设为空NULL
> print(list_two)
$zifu
[1] "sheng" "xin"
$juzhen
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
$liebiao
$liebiao[[1]]
[1] "bi ji"
$liebiao[[2]]
[1] 7
> # 更新修改元素
> list_two[3] = "translate"
> print(list_two[3])
$liebiao
[1] "translate"
- 合并列表
使用c()
命令将多个列表合成一个列表。合并过程中会依次按照列表中元素原来的位置依次生成新列表,如下:
> # 合并列表
> list1 = list("sheng","xin")
> list2 = list(5,6)
> out_list = c(list1,list2) #合并步骤
> print(out_list)
[[1]]
[1] "sheng"
[[2]]
[1] "xin"
[[3]]
[1] 5
[[4]]
[1] 6
# 按顺序输出元素
- 列表转化为向量
列表转换为向量可以使用 unlist()
函数。将列表转换为向量,可以方便我们进行算术运算,如下:
> # 创建两个列表
> list_1 = list(1:3)
> list_2 = list(4:6)
> # 转化为向量
> v_1 = unlist(list_1)
> v_2 = unlist(list_2)
> # 两个向量算数相加
> out_sum = v_1 + v_2
> print(out_sum)
[1] 5 7 9 #两个向量相加,会把相同位置的元素相加,结果仍是向量。
参考资料:
https://www.runoob.com/r
本文由mdnice多平台发布
网友评论