相关疑难解决方法(0)

R中的数据转换:更好地在行值或因子水平上运行?

假设您注意到大因子中的某些值是相似的.巩固这些价值观的更好策略是什么?我在我的分析中使用了两种策略,这两种策略在性能方面似乎相当.1,将合并逻辑放入一个函数并使用sapply,和2,改变因子级别本身.下面我给出了每个例子.

示例1,将合并逻辑放在函数中并使用sapply:

favorite.color <- c('yellow', 'banana', 'canary yellow', 'aqua', 'blue')
messy.vector.of.favorite.colors <- as.factor(sample(favorite.color, 10000, replace=TRUE))

consolidate.colors <- function(color) {
     if(color == 'banana') {
         return('yellow')
     }
     if(color == 'canary yellow') {
         return('yellow')
     }
     if(color == 'aqua') {
         return('blue')
     }
     else {
         return(color)
     }
}

clean.colors <- as.factor(sapply(as.character(messy.vector.of.favorite.colors), consolidate.colors, USE.NAMES=FALSE))
# Gives factor vector with two levels: blue, yellow
Run Code Online (Sandbox Code Playgroud)

例2,直接改变因子标签本身:

favorite.color <- c('yellow', 'banana', 'canary yellow', 'aqua', 'blue')
messy.vector.of.favorite.colors <- as.factor(sample(favorite.color, 10000, replace=TRUE))

working.vector <- messy.vector.of.favorite.colors
levels(working.vector)[levels(working.vector) == …
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
2308
查看次数

标签 统计

r ×1