c() & paste() & 循环补齐 & 冒号运算符 & names函数

文章详细介绍了R语言中的c()函数用于连接向量,paste()函数用于拼接元素,以及在处理向量时的循环、矩阵运算和命名规则。特别强调了向量相加的原理,如c()函数对不同长度向量的处理方式和矩阵加法的实际操作过程。
摘要由CSDN通过智能技术生成

c() 与 paste()

c()函数: 将括号中的元素连接起来,并不创建向量
paste()函数: 连接括号中的元素

# c()

x <- c(1,2,3,4,5)
x
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
x <- c(1,2,3,4,5,6)
x[1:3]

y <- c('1','is','useful')
y
y[1:2]

x == y
  1. 1
  2. 2
  3. 3
  1. '1'
  2. 'is'
  3. 'useful'
  1. '1'
  2. 'is'
  1. TRUE
  2. FALSE
  3. FALSE
  4. FALSE
  5. FALSE
  6. FALSE

paste()

for (i in 1:9){
    name <- paste('z',i,sep = '') #分隔符为空时,sep = ''可省略
    assign(name,i:10)
}
z1
z2
z9
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  1. 2
  2. 3
  3. 4
  4. 5
  5. 6
  6. 7
  7. 8
  8. 9
  9. 10
  1. 9
  2. 10

循环补齐

c(1,2,4)+c(6,0,9,20,22)
Warning message in c(1, 2, 4) + c(6, 0, 9, 20, 22):
"longer object length is not a multiple of shorter object length"
  1. 7
  2. 2
  3. 13
  4. 21
  5. 24

计算原理

计算原理:对于短向量与长向量相加,短向量一遍循环完了以后重新回到开始继续循环和长度较长的向量里面的元素相加,直到长向量里面的元素被相加完全,上例可以看做是c(1,2,4,1,2)+c(6,0,9,20,22)

第二个例子

 x <- matrix(1:6,nrow = 3,ncol = 2)
x
print('————————')
x+c(1,2)
A matrix: 3 × 2 of type int
14
25
36
[1] "————————"
A matrix: 3 × 2 of type dbl
26
46
48

再次提醒读者,矩阵实际上是个长向量。在这里,3×2的矩阵x是一个六元向量,它在R中一列一列的存储。换句话说,在存储方面,x与c(1,2,3,4,5,6)相同。我们把二元向量c(1,2)加到这个六元向量上,则所加的二元向量要再重复两次才能变成六个元素。换句话说,实际的运算如下:
( 1 4 2 5 3 6 ) \begin{pmatrix}1&4\\2&5\\3&6\\\end{pmatrix} 123456 + ( 1 2 2 1 1 2 ) \begin{pmatrix}1&2\\2&1\\1&2\\\end{pmatrix} 121212

:

: 运算符是seq()函数的一个特例 可用于生成相邻元素相差1或-1
seq(from = 1,to = 10)
seq(from = 3,to = 27, by = 3)
1 : 10
1 : -10
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  1. 3
  2. 6
  3. 9
  4. 12
  5. 15
  6. 18
  7. 21
  8. 24
  9. 27
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  1. 1
  2. 0
  3. -1
  4. -2
  5. -3
  6. -4
  7. -5
  8. -6
  9. -7
  10. -8
  11. -9
  12. -10

names() :用于获取或设置对象的名称

用法: names(x) <- value
m <- c(apple = 1,banana = 2,cat = 3,4)
m
n <- c('A','B','C','D')
names(n) <- c('apple','banana','','dog')
n
names(m)
print(m)
names(n)
print(n)
apple
1
banana
2
cat
3
4
4
apple
'A'
banana
'B'
3
'C'
dog
'D'
  1. 'apple'
  2. 'banana'
  3. 'cat'
  4. ''
 apple banana    cat        
     1      2      3      4 
  1. 'apple'
  2. 'banana'
  3. ''
  4. 'dog'
 apple banana           dog 
   "A"    "B"    "C"    "D" 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值