一.组合数据类型

  1. 组合数据类型分为3种:集合类型,映射类型,序列类型。

    集合类型:元素之间无序且相同元素唯一存在。用 { } 表示,没有索引和位置的概念,集合元素可以动态的增删
    序列类型:元素之间有序且相同元素可以同时存在,元素之间不排他。序列类型的代表:字符串类型,元组类型,列表类型
    映射类型:****‘键-值’,每个元素是一个键值对,表示为(key,value)。 映射类型代表有字典类型
  2. 集合类型讲解
    集合元素不可重复,元素类型只能是固定数据类型
    由于集合是无序的,所有集合的打印效果与定义不一定一致。

    (3)字符串
    单引号和双引号都可以用于字符串

字符串的操作:
连接: paste()

语法:
paste(…,seq=" ",collapse=NULL)
以下是所使用的参数的说明 -
…表示要组合的任意数量的自变量。
sep表示参数之间的任何分隔符。它是可选的。
collapse用于消除两个字符串之间的空格。 但不是一个字符串的两个字内的空间。

(4)元组
元组不能添加/删除元素(即元组没有append, remove等方法),不能修改元素。

x=(1,) # 定义只含一个元素的元组x , 注意只有1个元素时,后面要有逗号
x=(1,3,5,7,8) # 定义元组x , 用小扩号
x=1,3,5,7,8 # 也可只用逗号分隔, 不用小扩号也行

x=(0,1,2,3,4,5)
x[:-2] 返回(0,1,2,3)
x[: :-1] 返回(5, 4, 3, 2, 1, 0) , 步长为-1 就是倒数切片
x[1:4 :-1] 返回() . 注意:步长为负数时,start应大于end, 所以应写为
x[4:1 :-1] 返回(4,3,2) . 注意:步长为负数时,start应大于end
(5)列表
列表的创建:list( )
为列表命名:names()
添加新列:列表名$新列的名字
删除某个元素:将需要删除的那一列赋值为NULL

> name <- "Apple and IBM"
> apple <- c(109.49, 109.90, 109.11, 109.95, 111.03)
> ibm <- c(159.82, 160.02, 159.84, 160.35, 164.79)
> cor_matrix <- cor(cbind(apple, ibm))

> portfolio <-list(name,apple,ibm,cor_matrix) #创建列表
> portfolio 
[[1]]
[1] "Apple and IBM"
[[2]]
[1] 109.49 109.90 109.11 109.95 111.03
[[3]]
[1] 159.82 160.02 159.84 160.35 164.79
[[4]]
          apple       ibm
apple 1.0000000 0.9131575
ibm   0.9131575 1.0000000
(2)为列表命名:names()
> names(portfolio) <- c('portfolio_name','apple','ibm','correlation')
> portfolio
$`portfolio_name`
[1] "Apple and IBM"

$apple
[1] 109.49 109.90 109.11 109.95 111.03

$ibm
[1] 159.82 160.02 159.84 160.35 164.79

$correlation
          apple       ibm
apple 1.0000000 0.9131575
ibm   0.9131575 1.0000000

3. 添加新列:列表名$新列的名字
> portfolio$weight <- c(apple = 0.2, ibm = 0.8)
4. 
> portfolio$weight <- c(apple = 0.3, ibm =0.7)