修改列表中因子的名称和级别数

问题描述 投票:0回答:1

我想知道如何重命名和更改列表中的因子的数量级别。

我有这样的事情;

A <- factor(sample(letters,size=10,replace=TRUE))
B <- factor(sample(letters,size=10,replace=TRUE))
C <- factor(sample(letters,size=10,replace=TRUE))

l <- list(A,B,C)

names(l) <- c('A','B','C')

例如,我希望将级别的数量更改为仅等于1,并将名称更改为例如abc分别针对不同的因素。输出将是这样的

$A
[1] a a a a a a a a a a
Levels: a

$B
[1] b b b b b b b b b b
Levels: b

$C
[1] c c c c c c c c c c
Levels: c 

任何指针都将受到高度赞赏,谢谢!

r list r-factor
1个回答
2
投票

你可以使用mapply

new.levels <- c('a', 'b', 'c')
replace.fun <- function(f, nl) `levels<-`(f, rep(nl, length(f)))
mapply(replace.fun, l, new.levels, SIMPLIFY=FALSE)
$A
 [1] a a a a a a a a a a
Levels: a

$B
 [1] b b b b b b b b b b
Levels: b

$C
 [1] c c c c c c c c c c
Levels: c
© www.soinside.com 2019 - 2024. All rights reserved.