【问题标题】:CAST ERROR IN R Error in `[.data.frame`(data, , variables, drop = FALSE) : undefined columns selected`[.data.frame`(data, , variables, drop = FALSE) 中的 R 中的 CAST ERROR 错误:选择了未定义的列
【发布时间】:2017-05-04 15:41:19
【问题描述】:

使用包“Reshape”投射数据时,我在 R 中遇到此错误:

"Error in `[.data.frame`(data, , variables, drop = FALSE) : 
  undefined columns selected"

水质数据如下所示:

   year turbid.ave.mo month2
16 2002     926.66667   JUNE
23 2002     493.66667   JULY
29 2002     107.10000    AUG
37 2002     295.80000   SEPT
46 2002     528.28000    OCT
53 2002     266.20000    NOV
56 2002      73.80000    DEC
1  2003     115.00000    JAN

我想将那个月份作为列标题(每年一行,JAN 到 DEC 作为列标题。

我试过的代码:

casted = cast(Waterquality [ ,c(1:3)], year + turbid.ave.mo ~ month2, mean, fill =0, value = "turbid.ave.mo")

错误:[.data.frame(data, , variables, drop = FALSE) 中的错误: 选择了未定义的列

有人告诉我我做错了什么吗?提前致谢!!

【问题讨论】:

  • 对于未来的问题,请记住,在 R 标签中,我们要求您使用dput() 来分享您的数据。
  • cast 不是 R 函数。考虑在您的问题中提供足够的信息,以便其他人可以运行您的代码。
  • 谢谢,也遇到了这个问题。 r-statistics.com/tag/transpose 上的解释似乎有误?

标签: r casting


【解决方案1】:

不要在公式中包含值:

cast(Waterquality [ ,c(1:3)], year ~ month2, mean, fill =0, value = "turbid.ave.mo")

  year   AUG  DEC JAN     JULY     JUNE   NOV    OCT  SEPT
1 2002 107.1 73.8   0 493.6667 926.6667 266.2 528.28 295.8
2 2003   0.0  0.0 115   0.0000   0.0000   0.0   0.00   0.0

【讨论】:

    【解决方案2】:

    这是一个更干净的tidyr 解决方案:

    library(tidyr)
    
    spread(Waterquality, month2, turbid.ave.mo, fill = 0)
    # year        Apr      Aug       Feb        Jan         Jul      Jun        Mar       May
    # 1 2002 -0.2798722 0.000000 -0.901421 -0.9576323 -0.07627388 0.652116 -0.3758433 0.9795479
    # 2 2003  0.0000000 1.047832  0.000000  0.0000000  0.00000000 0.000000  0.0000000 0.0000000
    

    【讨论】:

      【解决方案3】:

      有同样的问题。最初的数据为 :(Id,Value,Variable) 只需将订单重新排列为(Id,Variable,Value)。

          cast (tmp, id ~ delivery_month)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-17
        • 2021-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-21
        • 2018-10-27
        相关资源
        最近更新 更多