【问题标题】:How to change row names based on group in R?如何根据 R 中的组更改行名?
【发布时间】:2018-05-26 01:44:05
【问题描述】:

我有一个包含 4 列的数据框,其中一列是状态。几行状态相同,如下图:

我想根据州名重命名行。如图所示,我希望将第 1-15 行命名为 texas。

我尝试了以下行rownames(stateSales2) <- stateSales$state 但我收到错误和警告消息

Error in row.names<-.data.frame(`*tmp*`, value = value) : 
  duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘alabama’, ‘alaska’, ‘arizona’, ‘arkansas’, ‘california’, ‘colorado’, ‘connecticut’, ‘delaware’, ‘florida’, ‘georgia’, ‘hawaii’, ‘idaho’, ‘illinois’, ‘indiana’, ‘iowa’, ‘kansas’, ‘kentucky’, ‘louisiana’, ‘maine’, ‘maryland’, ‘massachusetts’, ‘michigan’, ‘minnesota’, ‘mississippi’, ‘missouri’, ‘montana’, ‘nebraska’, ‘nevada’, ‘new hampshire’, ‘new jersey’, ‘new mexico’, ‘new york’, ‘north carolina’, ‘north dakota’, ‘ohio’, ‘oklahoma’, ‘oregon’, ‘pennsylvania’, ‘rhode island’, ‘south carolina’, ‘south dakota’, ‘tennessee’, ‘texas’, ‘utah’, ‘vermont’, ‘virginia’, ‘washington’, ‘west virginia’, ‘wisconsin’, ‘wyoming’

任何帮助将不胜感激!

【问题讨论】:

  • 错误很明显:所有行名必须完全唯一。如果你想要 "texas" 在其中的某个位置,请参阅 make.unique(rep('a',5))
  • 错误消息礼貌地暗示某些事情既不是最佳的,也不是首选的。但是考虑一下,当你有一个非常好的列并且逐行告诉你同样的事情时,你为什么要这样做呢?将来,当你想要第 4 行时,说给我第 4 行会比说第 4 行更容易,呃,德州,德州,给我所有的德州,我会解决它。
  • cpersonal,使用行名绝对是一种偏好,但要记住:data.frames 上的许多操作(即dplyr 和其他tibble-使用函数)会擦掉它们。 (我不知道任何严格要求行名的东西。)

标签: r row rename rowname


【解决方案1】:

您不能有重复的行名。这就是错误消息“duplicate 'row.names' are not allowed”的含义。

我希望将第 1-15 行命名为 texas

你不能这样做,那样会引入重复的行名。

【讨论】:

    猜你喜欢
    • 2013-07-31
    • 2021-10-19
    • 2020-11-05
    • 2012-12-22
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多