【问题标题】:Two lists with the same name appears after rbind dataframerbind 数据框后出现两个同名列表
【发布时间】:2020-03-06 01:40:52
【问题描述】:
book.add <- function(book, message) {
if(message$side=="S"){
    book$ask <- rbind(book$ask,(data.frame("oid"=message$oid,"price"=message$price,"size"=message$size)))
}
if(message$side=="B"){
    book$bid <- rbind(book$bid,(data.frame("oid"=message$oid,"price"=message$price,"size"=message$size)))
}
return(book)

} 我使用 rbind 将新项目添加到数据框书 然后结果显示为图片 terminal output

似乎有两个 book$ask,我不能将 book$ask$oid 作为向量传递给另一个函数

【问题讨论】:

  • 我发现额外的一个是原始数据存储在 book$ask 和 book$bid 最初和 rbind 的操作使另一个
  • 你可以有一个包含多个同名条目的列表,例如尝试`列表(aa = 1,aa = 2)`。这个例子是不可能知道的,因为它不可重现。查看一些最佳实践指南,让您的问题可重复,以帮助人们帮助您stackoverflow.com/help/minimal-reproducible-example
  • edit 您的问题并添加dput(book) 或至少str(book) 的输出。屏幕截图没有说明数据结构。谢谢。

标签: r dataframe rbind


【解决方案1】:

只需 rbind 使用新列表而不是数据框

book.add <- function(book, message) {
if(message$side=="S"){
    book$ask <- rbind(book$ask,list("oid"=message$oid,"price"=message$price,"size"=message$size),stringsAsFactors=FALSE)
    return(book)
}
if(message$side=="B"){
    book$bid <- rbind(book$bid,list("oid"=message$oid,"price"=message$price,"size"=message$size),stringsAsFactors=FALSE)
    return(book)
}

}

【讨论】:

    猜你喜欢
    • 2018-06-26
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 2015-04-18
    • 2021-12-28
    • 2016-08-29
    • 2021-05-17
    相关资源
    最近更新 更多