【问题标题】:unexpected numeric constant in R after using cast ()使用 cast () 后 R 中出现意外的数字常量
【发布时间】:2020-10-09 18:10:37
【问题描述】:

我试图重塑将一列中的条目转换为行名的数据框。然后我使用 cast () ,但是当我在新数据框中检索数据时出现错误。

这是原始数据框:

ID Type rating
1  1    3.5
1  2    4.0
2  2    2.5

还有代码:

r_mat <-cast(r_data,ID~type)    
r_mat$1
unexpected numeric constant in r_mat$1

这是新数据框的样子:

ID  1    2 
1  3.5  4.0
2  NA   2.5

谁能帮我解决这个错误? 谢谢!

【问题讨论】:

  • 试试r_mat$"1"。问题是 data.frames 中的数字是无效的列名,cast() 似乎没有警告您或为您转换它们。
  • @MrFlick,谢谢,它确实有效!但是有什么方法可以将名称转换为有效名称?除了使用col.names(),因为我需要将列名保留为数字,实际上,我有大约 1000 列以类似的方式,即列名是从 1 到 1000。

标签: r error-handling reshape


【解决方案1】:

您可以在 {base} 中使用 ma​​ke.names 来“从字符向量中生成语法上有效的名称”,如下所示:

colnames(r_mat) <-
  make.names(colnames(r_mat),unique=T)

对于一组具有数字名称的列,这将在每个数字前面插入一个“X”字符,例如X1,X2...

有关功能规范的详细信息,请参见: https://stat.ethz.ch/R-manual/R-devel/library/base/html/make.names.html

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2015-01-17
    • 2014-11-23
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多