R语言 如何把因数转换为字符
在这篇文章中,我们将讨论如何在R编程语言中把因子类转换为字符类。
方法1:将单因子向量转换为字符向量
为了将单因子向量转换为字符向量,我们使用R语言的as.character()函数,并将所需的因子向量作为参数传递。
语法 。
character_vector <- as.character( Factor_vector )
例子 。
在这个例子中,我们通过使用as.character()函数将一个因子向量转换为一个字符向量。
# create factor vector
Input <- factor(c("Geeks", "for", "Geek"))
# print input factor vector and its class
print("Input vector:")
Input
print("Input Data Class:")
class(Input)
# Convert factor vector to character vector
Output <- as.character(Input)
# print Output character vector and its class
print("Output vector:")
Output
print("Output Data Class:")
class(Output)
输出 。
Input vector:
Geeks for Geek
Input Data Class:
factor
Output vector:
"Geeks" "for" "Geek"
Output Data Class:
character
方法2:将数据框架中的因子向量列转换成字符向量列
为了将一个已知的因子向量转换为字符向量,我们创建一个输入数据框的副本。然后使用R语言的as.character()函数,并将数据框中所需要的因子向量列作为参数传递。
语法 。
Outputfactor_vector_column <- as.character( Outputfactor_vector_column )
例子 。
在这个例子中,我们通过使用as.character()函数将因子向量列转换为字符向量列。
# create factor vector
x <- factor(c("Geeks", "for", "Geek"))
y <- c(1,2,3)
Input <- data.frame( x, y )
# print input factor vector and its data Class
print("Input vector:")
Input
print("Input Data Class:")
class(Inputx)
# Convert factor vector to character vector
Output <- Input
Outputx <- as.character(Inputx)
# print Output character vector and its Class
print("Output vector:")
Output
print("Output Data Class:")
class(Outputx)
输出 。
Input vector:
x y
1 Geeks 1
2 for 2
3 Geek 3
Input Data Class:
factor
Output vector:
x y
1 Geeks 1
2 for 2
3 Geek 3
Output Data Class:
character
方法3:在一个列数未知的数据框中,将因子向量列转换为字符向量列
为了将一个已知的因子向量转换为字符向量,我们创建了一个输入数据框的副本。然后使用is.factor()条件语句,找到具有数据类因子的列。然后使用R语言的as.character()函数,并将数据框中已确定的因子向量列作为参数传递。
语法 。
factor_columns <- sapply(Output, is.factor)
Output[factor_columns] <- lapply(Output[factor_columns], as.character)
例子 。
在这个例子中,我们通过使用由is.factor()条件语句确定的as.character()函数将所有因子向量列转换为字符向量列。
# create Input dataframe
x <- factor(c("Geeks", "for", "Geek"))
y <- c(1,2,3)
z <- factor(c("Complete", "Interview", "Preparation"))
Input <- data.frame( x, y, z )
# print input data frame and its data Class
print("Input dataframe:")
Input
print("Input Data Class:")
sapply(Input, class)
#Convert factor vector to character vector
Output <- Input
factor_columns <- sapply(Output, is.factor)
Output[factor_columns] <- lapply(Output[factor_columns], as.character)
# print Output character vector and its Class
print("Output dataframe:")
Output
print("Output Data Class:")
sapply(Output, class)
输出 。
Input dataframe:
x y z
1 Geeks 1 Complete
2 for 2 Interview
3 Geek 3 Preparation
Input Data Class:
x y z
"factor" "numeric" "factor"
Output dataframe:
x y z
1 Geeks 1 Complete
2 for 2 Interview
3 Geek 3 Preparation
Output Data Class:
x y z
"character" "numeric" "character"
方法4:将数据框的所有列转换为字符
为了将数据框的所有列转换成字符,我们使用apply()函数,参数为as.character。lapply()函数将给定的函数应用于所提供的数据框。
语法 。
dataframe <- lapply(dataframe, as.character)
例子 。
在这个例子中,我们通过使用as.character函数和lapply()函数将数据框的所有列转换为字符向量列。
# create Input dataframe
x <- c("Geeks", "for", "Geek")
y <- c(1,2,3)
z <- factor(c("Complete", "Interview", "Preparation"))
df <- data.frame( x, y, z )
# print input data frame and its data Class
print("Input dataframe:")
df
print("Input Data Class:")
sapply(df, class)
#Convert all columns of data frame to character vector
df <- lapply(df, as.character)
# print Output character vector and its Class
print("Output dataframe:")
df
print("Output Data Class:")
sapply(df, class)
输出 。
Input dataframe:
x y z
1 Geeks 1 Complete
2 for 2 Interview
3 Geek 3 Preparation
Input Data Class:
x y z
"character" "numeric" "factor"
Output dataframe:
x
[1] "Geeks" "for" "Geek"y
[1] "1" "2" "3"
$z
[1] "Complete" "Interview" "Preparation"
Output Data Class:
x y z
"character" "character" "character"