gpt4 book ai didi

r - 当 `unlist()` 或 `flatten()` 为列表时缺少因子

转载 作者:行者123 更新时间:2023-12-02 02:21:35 26 4
gpt4 key购买 nike

当使用因子变量取消列出 unlist() 或展平 flatten() 列表时,因子值会在此过程中丢失。此外,当 unlist() 时,所有内容都会转换为“字符”。哪一个是正确的继续方法?以下是我想要的输出。谢谢。

L <- list(x = structure(1L, .Label = c("Jujutsu", "Kaisen"), class = "factor"), 
y = 2020,
z = "Shinjuku")

取消列表

unlist(L)
# x y z
# "1" "2020" "Shinjuku"

展平()

flatten(L)
# $x
# [1] 1
#
# $y
# [1] 2020
#
# $z
# [1] "Shinjuku"

所需的输出。

# $x
# [1] "Jujutsu"
#
# $y
# [1] 2020
#
# $z
# [1] "Shinjuku"

最佳答案

您可以检查 is.factor 并转换子集。

f <- sapply(L, is.factor)
L[f] <- lapply(L[f], as.character)
L
# $x
# [1] "Jujutsu"
#
# $y
# [1] 2020
#
# $z
# [1] "Shinjuku"

这也为您提供了向量。

unlist(L)
# x y z
# "Jujutsu" "2020" "Shinjuku"

“2020”仍将保留字符,因为向量的所有元素都必须是相同的类型。

关于r - 当 `unlist()` 或 `flatten()` 为列表时缺少因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66331279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com