替换 R 数据框中因子列的内容
在本文中,我们将看到如何在 R 编程语言中替换数据帧中因子列的内容。
示例 1:替换因子列的内容
最初,使用 as 的显式转换将因子列转换为字符列。 R 中的字符() 方法。此方法将指定列转换为字符类型,该类型可以包含重复的元素值,而不是所有副本都属于同一级别。
然后用新值替换此列的旧单元格值。然后使用 as.factor() 方法将列再次恢复为因子类型。
可以使用 levels() 方法打印数据框列的级别。如果我们显示替换前后的级别,它们会有所不同。
R
# creating a data frame
data_frame <- data.frame(col1 = factor(c(1,2,1,5,2)),
col2 = factor(c("a","b","a","c","d"))
)
print("Original DataFrame")
print (data_frame)
print ("Original DataFrame Levels")
print(levels(data_frame$col1))
# replicating the data frame
data_temp <- data_frame
# replacing the content of data frame
data_temp$col1 <- as.character(data_frame$col1)
data_temp$col1[3] <- 4
data_temp$col1 <- as.factor(data_temp$col1)
print("Modified DataFrame")
print(data_temp)
print ("Modified DataFrame Levels")
print(levels(data_temp$col1))
R
# creating a data frame
data_frame <- data.frame(col1 = factor(c(1,2,1,5,2)),
col2 = factor(c("a","b","a","c","d"))
)
print("Original DataFrame")
print (data_frame)
print ("Original DataFrame Levels")
print(levels(data_frame$col2))
# replicating the data frame
data_temp <- data_frame
# replacing the level of data frame
levels(data_temp$col2)[levels(data_temp$col2) == "a"] <- "e"
print("Modified DataFrame")
print(data_temp)
print ("Modified DataFrame Levels")
print(levels(data_temp$col2))
输出:
示例 2:替换因子列的级别
也可以使用 levels() 方法修改数据框的级别。可以使用数据框索引方法比较旧的级别值,然后分配一个新值。此级别的所有出现都更改为新分配的级别。在这种情况下,级别的数量在数量上保持不变,但在价值上发生了变化。
电阻
# creating a data frame
data_frame <- data.frame(col1 = factor(c(1,2,1,5,2)),
col2 = factor(c("a","b","a","c","d"))
)
print("Original DataFrame")
print (data_frame)
print ("Original DataFrame Levels")
print(levels(data_frame$col2))
# replicating the data frame
data_temp <- data_frame
# replacing the level of data frame
levels(data_temp$col2)[levels(data_temp$col2) == "a"] <- "e"
print("Modified DataFrame")
print(data_temp)
print ("Modified DataFrame Levels")
print(levels(data_temp$col2))
输出: