r - 强制隐式转换为最通用的共享类?
问题描述
是否有一个函数可以将隐式转换规则强制到异构列表中,以便将其转换为最通用共享类的原子向量?例如,如果我有list("apple", 12, TRUE)
,我怎么能把它变成c("apple", "12", "TRUE")
?
解决方案
R 的类层次结构大致是逻辑 < 因子 < 整数 < 数字 < 字符。因此unlist
,强制转换为字符应该有所帮助,然后list
再次获取列表格式。
list(unlist(list("apple", 12, TRUE)))
# [[1]]
# [1] "apple" "12" "TRUE"
如果我们有一个嵌套列表,我们可以创建一个"relistable"
继承自"list"
并使用relist
after的对象unlist
:
l <- as.relistable(list("apple", list(12), TRUE))
relist(unlist(l))
# [[1]]
# [1] "apple"
#
# [[2]]
# [[2]][[1]]
# [1] "12"
#
#
# [[3]]
# [1] "TRUE"
推荐阅读
- java - java.sql.SQLException:关闭结果集:下一个
- list - 如何对列表进行排序
在 Dart 中以空对象结尾 - functional-programming - 如何将 Lisp/Scheme/Racket 符号放在末尾?
- azure - 如何在 Istio 中配置 Azure 应用网关
- python - 执行通常包含 '\;' 的 tmux 命令 使用 subprocess.run
- gcc - cmake - 预处理整个项目并将输出存储在文件中
- button - 按钮在可排序中无法正常工作
- c++ - 我使用 OpenMP 的线程越多,执行时间就越长,这是怎么回事?
- twig - 2D Twig Array - 动态打印内容
- android - 导航抽屉只需遵循一条指令