将 3 个向量转换为单个因子

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

我有 3 个向量(A、B、C),希望将所有向量转换为单个因子 (ABC)。各个向量被二分 (0,1)。问题是,当我运行代码时,1 似乎没有被计算在内,因此总数始终为零。

# Example data 
A <- c(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
B <- c(0, 1, 0, 1, 0, 1, 0, 1, 0, , 0, 1)
C <- c(0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0)


A <- factor(ifelse(A == 1, "A", 0))
B <- factor(ifelse(B == 1, "B", 0))
C <- factor(ifelse(C == 1, "C", 0))



通过包 forcats 解决了

ABC_factor <- ftc_c(A, B, C)

r r-factor
1个回答
0
投票

我会用类似的东西

factor(c(c("A", "no")[A+1], 
c("B", "no")[B+1],
c("C", "no")[C+1]
)
) 

[1] no A  no A  no A  no A  no A  no A  B  no B  no B  no B  no B  no B  no C 
[26] no no no C  no C  no C  no C  C 
Levels: A B C no

数据:

A <- c(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
B <- c(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
C <- c(0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0)
© www.soinside.com 2019 - 2024. All rights reserved.