【问题标题】:Extract values from complex list with different data types从具有不同数据类型的复杂列表中提取值
【发布时间】:2016-03-25 16:18:05
【问题描述】:

我有一个嵌套列表,其元素是不同的对象 - 比如说字符串(字符)、整数、数字和数据框:

mylist <- list(letters = as.character("Hello world"), 
               numbers = as.numeric(1.254),
               table = data.frame (id = letters[1:5], value = 1:5))

我想将此列表转换为关系 data.tabledata.frame,但我的 R 不断抛出异常。

为了让我更难,我有一个列表biglist,其中每个元素都是上面的列表之一。目前,这就是我试图将其全部放在一个表格中的方式:

# I start with initializing a data.table/frame result.table 
# which should then hold all the other values.
result.table <- data.table(letters = character(length(biglist), 
                           numbers = numeric(length(biglist), ... ) # and so on


for (i in 1:length(mylist)) {
  result.table[i]$col1 <- mylist[[i]]$letters
  result.table[i]$col2 <- mylist[[i]]$numbers
  result.table[i]$col3 <- mylist[[i]]$table$value[1]
  result.table[i]$col4 <- mylist[[i]]$table$value[2]
}

return (result.table)

我的 R 一直告诉我,列的数量和数据类型有问题,因为它们似乎都是字符(甚至是数字..)。是否有关于如何更有效且无错误地访问 mylist 中的值的想法?

【问题讨论】:

    标签: r list


    【解决方案1】:

    试试这个:

    mylist<-as.data.frame(mylist)
    
    #       letters numbers table.id table.value
    # 1 Hello world   1.254        a           1
    # 2 Hello world   1.254        b           2
    # 3 Hello world   1.254        c           3
    # 4 Hello world   1.254        d           4
    # 5 Hello world   1.254        e           5
    

    【讨论】:

    • 由于列表中的数据类型不同,不起作用。
    • @trizzou 请添加此帖子不起作用的示例。此答案为您的示例列表提供了正确的结果。
    • 基本上我希望 mylist 中的所有值作为一个大数据框的一行,最后包含我的 biglist 中的所有值。我不知道我的意思是否清楚。
    • @trizzou 请为点赞输入和输出点赞。很难理解你想要什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2018-10-02
    • 2012-11-02
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多