R语言 创建重复值的序列

R语言 创建重复值的序列

一个重复的数字序列是一个递增的数字列表,其排列方式是连续的数字之差为1,并且每个数字都重复指定的次数。R为我们提供了多种方法来生成重复序列,包括使用向量或整数。在这篇文章中,我们将看到如何在R编程中创建一个重复值的序列。

方法1:使用 rep() 方法

R基的rep()方法用于从一个指定的向量中生成一个重复序列,其中向量的每个元素可以在任何指定的次数上重复。这个方法可以接受一个字符、浮点或整数类型的输入向量。

语法: Rep(seq, each)

参数

  • seq – 要生成一个序列的向量
  • each – 重复序列中每个元素的次数

例1: 创建一个重复值的字符序列。

# declaring vector
vec <- LETTERS[1 : 4]
 
# replicate each letter in vec 3 times
print ("Replicated Sequence")
rep(vec, each = 3)
R

输出

[1] "Replicated Sequence"
[1] "A" "A" "A" "B" "B" "B" "C" "C" "C" "D" "D" "D"
R

例2: 创建一个重复值的整数序列。

# declaring vector
vec <- c(60 : 62)
 
# replicate each integer in vec 3 times
print ("Replicated Sequence")
rep(vec, each = 2)
R

输出

[1] "Replicated Sequence"
[1] 60 60 61 61 62 62
R

方法2:使用 gl() 方法

基础R中的gl()方法被用来生成模式规范形式的因子。输出取决于级别的数量,每个级别被复制k次,直到达到长度。在没有指定长度的情况下,长度被认为是级别数*每个级别的复制次数。这种方法的缺点是它总是产生一个范围在1到n之间的序列。但是,如果我们需要推翻这个默认的标签,可以给输出分配一个自定义的标签向量。

语法: gl(n, k, length, labels)

参数:

  • n – 水平的总数。
  • k – 每个层次的重复次数。
  • length(默认为:n*k)–输出的长度
  • labels – 用于因子水平的标签。

代码

# generate a sequence of 1:6 each
# repeated 4 times
gl(6 , 4 )
R

输出

 [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6
Levels: 1 2 3 4 5 6
R

如果长度大于n×k,则在末尾再次追加相同的序列,直到达到矢量的总长度。

# generate a sequence of 1:6 each
# repeated 3 times until length=20
gl(6 , 3 , length = 20)
R

输出

[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 1 1
Levels: 1 2 3 4 5 6
R

解释 :因为6×3=18,所以,从头开始的相同序列被追加,直到达到长度=20。因此,在最后加入1个1。

另外,可以为序列分配定制的标签,结果是实际的序列数字可以被标签向量的相应字母所取代。为了确保正确的映射,标签向量的长度应该与因子水平的数量相同。

# generate a sequence of 1:5
# each repeated 2 times assigned
# labels from 100
seq1 <- gl(5, 2, labels = c(100 : 104))
print("Sequence 1")
print (seq1)
 
# generate a sequence of 1:5
# each repeated 2 times assigned
# labels as letters from a
seq2 <- gl(5, 2, labels = letters[ 1 : 5 ])
print("Sequence 2")
print (seq2)
R

输出

[1] "Sequence 1"
[1] 100 100 101 101 102 102 103 103 104 104
Levels: 100 101 102 103 104
[1] "Sequence 2"
[1] a a b b c c d d e e
Levels: a b c d e
R

解释: 在序列1中,原序列中1的每个实例被101替换,2被102替换,以此类推。同样,在序列2中,1的每个实例被替换为 “a”,2被替换为 “b”,依此类推。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册