向量的增减合并元素

2023-02-03 20:18:49 浏览数 (1)

代码语言:javascript复制
cat(c(1,2,3),c(4,5,6))
1 2 3 4 5 6

cat函数,只能链接数据类型相同的向量若数据类型不同则会报错

代码语言:javascript复制
> x<-c(1,2,3)
> x<-append(x,3)
> x
[1] 1 2 3 3

append函数,增加向量内同类型的数值

代码语言:javascript复制
> x<-append(x,"a")
> x
[1] "1" "2" "3" "3" "a"

若加上字符型数据,则会变换原始向量的数据类型

代码语言:javascript复制
> x<-append(x,c(1,2,7))
> x
[1] "1" "2" "3" "3" "a" "1" "2" "7"

有意思的是如果append里对字符型数值加数值型数值,依然是字符型的

代码语言:javascript复制
a <- c(1:10)
> append(x = a, 11, after = 5)

那么如何在任何向量的任何位置增加任意元素

代码语言:javascript复制
> a=1:100
> ins=function(x,pos,new){c(x[1:pos],new,x[(pos 1):length(x)])}
> ins(a,11,33)
  [1]   1   2   3   4   5   6   7   8   9  10  11  33  12  13  14
 [16]  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29
 [31]  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44
 [46]  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59
 [61]  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74
 [76]  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89
 [91]  90  91  92  93  94  95  96  97  98  99 100

(这份函数来自jimmy)

在向量上减少元素可以换一种思路,也就是选择元素

来自知乎数据科学

这部分包含所有的逻辑运算符合,可以通过这个来在向量里挑选元素比方说

代码语言:javascript复制
> a <- 1:100
> a <- a[a!=1];a
 [1]   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
[17]  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33
[33]  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49
[49]  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65
[65]  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81
[81]  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97
[97]  98  99 100

至于合并元素,可以选择paste 或者paste0

代码语言:javascript复制
> paste(c("k","Q","K"),c(1,2,3)
  )
[1] "k 1" "Q 2" "K 3"

依然是优先字符

0 人点赞