【问题标题】:R - column names in read.table and write.table starting with number and containing spaceR - read.table 和 write.table 中的列名以数字开头并包含空格
【发布时间】:2012-07-22 00:07:10
【问题描述】:

我正在将股票数据的 csv 导入 R,股票代码的列名以数字开头并包含空格,例如“5560 JP”。读入 R 后,列名添加“X”,空格替换为“.”,例如“X5560.JP”。在 R 中完成所有工作后,我想将处理后的数据写回新的 csv,但使用原始列名,例如“5560 JP”而不是“X5560.JP”,我该怎么做?

谢谢!

【问题讨论】:

  • 调用你的变量df,试试这个names(df) <- gsub("\\.", " ", paste(substr(names(df),2,8)))
  • 我认为read.table 有一个check.names 参数可以绕过名称更改。您也许可以保存这些名称,并在最终导出之前使用它们。

标签: r


【解决方案1】:

当您使用 write.csv 或 write.table 将数据保存到 CSV 文件时,您可以通过设置 col.names 参数将列名设置为您喜欢的任何名称。

但这假设您有可用的列名。 一旦你读入数据并且 R 已经转换了名称,你就丢失了这些信息。为了解决这个问题,您可以禁止转换以获取列名:

df <- read.csv("mydata.csv", check.names=FALSE)
orig.cols <- colnames(df)
colnames(df) <- make.names(colnames(df))

[your original code]

write.csv(df, col.names=orig.cols)

【讨论】:

    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 2021-01-17
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2011-09-01
    相关资源
    最近更新 更多