生信分析笔记

V1

2022/09/18阅读:41主题:山吹

R语言学习day3丨字符串、列表:基础知识和函数使用方法

今天学习的主要内容是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")
[117
  • 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
[11 2 3
$d
[14
# 命名后,可以使用“列表名$元素名”调取指定内容
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]]
[15
[[4]]
[16
# 按顺序输出元素
  • 列表转化为向量

列表转换为向量可以使用 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)
[15 7 9  #两个向量相加,会把相同位置的元素相加,结果仍是向量。

参考资料:
https://www.runoob.com/r

分类:

后端

标签:

后端

作者介绍

生信分析笔记
V1

欢迎关注公众号:生信分析笔记