【问题标题】:Why is tidyr nesting like this?为什么 tidyr 嵌套是这样的?
【发布时间】:2016-01-21 20:51:10
【问题描述】:

我正在使用 tidyr(版本 0.4.0)中的 nest 函数将变量嵌套在一个简单的数据框中:

df <- structure(list(id = 1:4, type = c("B", "A", "B", "B")),
                class = "data.frame", row.names = c(NA, -4L),
                .Names = c("id", "type"))
df
#   id type
# 1  1    B
# 2  2    A
# 3  3    B
# 4  4    B

tidyr::nest(df, id)
#   type    data
# 1    B       2
# 2    A 1, 3, 4

为什么嵌套数据框的第一行没有type = "A", data = 2?这是一个错误还是我只是误解了nest 应该做什么?

【问题讨论】:

  • 我首先用“A”得到正确的输出。尝试重新启动您的 R 会话。
  • 我重新启动了 R 并尝试在 R、RStudio 和命令行中运行。每次输出都一样。
  • 我也得到了正确的输出,首先是“A”,ID 为 2。你还加载了哪些其他包?没关系,因为您直接致电tidyr::nest,但很高兴知道。
  • 我可以在更新到 tidyr_0.4.0 后重现 - 您可能希望将此问题报告为 github repository
  • 确实,我正在运行 tidyr 0.4.0... 一定是这样。谢谢!

标签: r tidyr


【解决方案1】:

tidyr 0.3.1 为我生成正确的输出:

library(tidyr)

df <- structure(list(id = 1:4, type = c("B", "A", "B", "B")),
                class = "data.frame", row.names = c(NA, -4L),
                .Names = c("id", "type"))

df2 <- nest(df, id)
as.data.frame(df2)
#   type      id
# 1    A       2
# 2    B 1, 3, 4

sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

【讨论】:

    猜你喜欢
    • 2020-03-30
    • 2013-12-11
    • 2019-08-03
    • 2021-05-02
    • 2020-10-23
    • 2017-03-29
    • 2011-05-21
    相关资源
    最近更新 更多