R语言 把两个给定的因子串联成一个单因子

R语言 把两个给定的因子串联成一个单因子

R编程中的因子变量可以组合成向量和列表。因子类型对象的连接不可能像原始连接操作那样,因为它们不保留变量的 “因子 “类,这可能导致数据的模糊性。

R编程中任何存储对象的类别都可以用sapply()方法获取,该方法返回对象所属的数据类型或模式。

语法: sapply(X, FUN)

参数:_

X: 一个向量或一个对象

FUN: 应用于X的每个元素的函数

方法1:使用unlist()方法

as.factor()方法用于指定因子格式的列向量,而不是数字格式。两个输入因子可以使用该方法声明向量明确映射为因子。

R语言中的unlist()方法是用来提供从列表对象到向量的转换。它通过保留所有成分简化了向量的产生,也就是保留了元素的类别。

语法

unlist( x )

其中x是一个列表或向量

这种方法保留了数据和其相应的等级。数据是按照list()方法中指定的顺序连接的。

例子

fac1 <- as.factor(c(1:5))
print ("Factor1 : ")
print (fac1)
sapply(fac1,class)
  
fac2 <- as.factor(c(8:10))
print ("Factor2 : ")
print (fac2)
sapply(fac2,class)
  
# combine into one factor
combined <- unlist(list(fac1,fac2))
print ("Combined Factor : ")
print (combined)
  
sapply(combined,class)
R

输出

[1] Factor1 : 

[1] 1 2 3 4 5

Levels: 1 2 3 4 5

[1] factor factor factor factor factor

[1] Factor2 : 

[1] 8  9  10

Levels: 8 9 10

[1] factor factor factor

[1] Combined Factor : 

[1] 1  2  3  4  5  8  9  10

Levels: 1 2 3 4 5 8 9 10

[1] factor factor factor factor factor factor factor factor
Bash

属于不同数据类型的因子类型对象也可以在一个单一的因子类型元素列表中合并在一起。在这种合并中,层次会被保留下来。

例子

fac1 <- as.factor(letters[1:3])
print ("Factor1 : ")
print (fac1)
sapply(fac1,class)
  
fac2 <- as.factor(c(1:4))
print ("Factor2 : ")
print (fac2)
sapply(fac2,class)
  
# combine into one factor
combined <- unlist(list(fac1,fac2))
print ("Combined Factor : ")
print (combined)
  
sapply(combined,class)
R

输出

[1] Factor1 : 

[1] a b c

Levels: a b c

[1] factor factor factor

[1] Factor2 : 

[1] 1 2 3 4

Levels: 1 2 3 4

[1] factor factor factor factor

[1] Combined Factor : 

[1] a b c 1 2 3 4

Levels: a b c 1 2 3 4

[1] factor factor factor factor factor factor factor
Bash

方法2:使用 factor() 方法

具体因子向量的level()方法可以用来提取独立字符串形式的各个级别。它返回相当于该向量长度的元素数量。

语法

levels (fac-vec)[fac-vec]

由于这些级别都是以字符串的形式返回,因此它们属于同一数据类型。因此,现在使用c()方法将它们组合起来,形成一个原子向量。

语法

c (vec1 , vec2)

其中vec1和vec2是属于同一数据类型的向量

例子

fac1 <- factor(letters[1:3])
print ("Factor1 : ")
print (fac1)
sapply(fac1,class)
  
fac2 <- factor(c(1:4))
print ("Factor2 : ")
print (fac2)
sapply(fac2,class)
  
# extracting levels of factor1
level1 <- levels(fac1)[fac1]
  
# extracting levels of factor2
level2 <- levels(fac2)[fac2]
  
# combine into one factor
combined <- factor(c( level1,level2 ))
print ("Combined Factor : ")
print (combined)
  
sapply(combined,class)
R

输出

[1] Factor1 : 

[1] a b c

Levels: a b c

[1] factor factor factor

[1] Factor2 : 

[1] 1 2 3 4

Levels: 1 2 3 4

[1] factor factor factor factor

[1] Combined Factor : 

[1] a b c 1 2 3 4

Levels: 1 2 3 4 a b c

[1] factor factor factor factor factor factor factor
Bash

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册