【问题标题】:Removing first character from multiple column names从多个列名中删除第一个字符
【发布时间】:2018-12-03 05:01:31
【问题描述】:

我的问题是关于一次重命名多个列名。

我有一个名为“增长”的数据框,有 46 列。

列 2:46 都被命名为日期,但所有日期前面都有一个 X,例如'X1981'。

我当然想从所有列名中删除 X。

我不明白为什么以下方法不起作用:

colnames(growth[ ,2:length(growth)]) <- substring(colnames(growth[ ,2:length(growth)]),2)

请帮助我提供一些见解。

【问题讨论】:

标签: r dataframe substring rename


【解决方案1】:

没关系,我把指令改成了……

names(growth)[2:46] <- substring(names(growth)[2:46],2)

...现在它可以工作了。显然这与我如何对列进行子集有关。

【讨论】:

  • 干得好。请注意,如果增长有 46 列,那么您可以将 2:46 替换为更简洁的 -1
  • 这可能是因为执行colnames(growth[, 2:46]) &lt;- ... 创建了原始data.frame 的子集,而不是使用substring() 调用创建字符向量,然后将此字符向量分配给早先创建的growth 的子集。所以输出是(所需)名称的字符向量。如果将代码括在括号中,您将看到类似:[1] "2" "3" "4"..."45" "46"。但是,我相信对 R 有更好了解的人会比我更好地解释它,或者如果我错了会纠正我。
猜你喜欢
  • 2019-06-22
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2011-04-11
相关资源
最近更新 更多