【问题标题】:Force implicit conversion to most general shared class?强制隐式转换为最通用的共享类?
【发布时间】:2021-11-09 18:42:52
【问题描述】:

是否有一个函数可以将隐式转换规则强制到异构列表中,以便将其转换为最通用共享类的原子向量?例如,如果我有list("apple", 12, TRUE),我怎样才能把它变成c("apple", "12", "TRUE")

【问题讨论】:

    标签: r list


    【解决方案1】:

    R 的类层次结构大致是逻辑 unlist 强制转换成字符应该会有所帮助,然后list 再次获得列表格式。

    list(unlist(list("apple", 12, TRUE)))
    # [[1]]
    # [1] "apple" "12"    "TRUE" 
    

    如果我们有一个嵌套列表,我们可以创建一个继承自"list""relistable" 对象,并在unlist 之后使用relist

    l <- as.relistable(list("apple", list(12), TRUE))
    relist(unlist(l))
    # [[1]]
    # [1] "apple"
    # 
    # [[2]]
    # [[2]][[1]]
    # [1] "12"
    # 
    # 
    # [[3]]
    # [1] "TRUE"
    

    【讨论】:

    • @user20650 感谢您的指出!添加到答案。
    猜你喜欢
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2011-10-19
    • 2016-09-24
    相关资源
    最近更新 更多