【问题标题】:R: Import CSV with column names that contain spacesR:使用包含空格的列名导入 CSV
【发布时间】:2011-09-01 17:50:55
【问题描述】:

CSV 文件如下所示(为简洁起见进行了修改)。几列的标题中有空格,R 似乎无法区分它们。

别名;类型;序列号;日期时间;主要状态; [...] E1;E-70;781733;01/04/2010 11:28;8; [...]

这是我要执行的代码:

s_data <- read.csv2( file=f_name )
attach(s_data)

s_df = data.frame( 
                scada_id=ID,
                plant=PlantNo, 
                date=DateTime,
                main_code=Main status,
                seco_code=Additional Status,
                main_text=MainStatustext,
                seco_test=AddStatustext,
                duration=Duration)

detach(s_data)

我也试过替换

main_code=Main\ status

main_code="Main status"

【问题讨论】:

  • @klonq : 为什么不试试 read.table 函数,我支持列名中的空格
  • @smack:不完全是。 read.csv2 只是 read.table 的包装,所以它支持相同的东西。在任何一种情况下,您都可以使用check.names=TRUE 在列名中允许空格(但这通常不是一个好主意)
  • 您从“CSV”文件中粘贴的数据不是CSV;它看起来像空格或制表符分隔。 read.csv2() 默认采用分号分隔。该文件看起来真的像您在此处粘贴的内容吗?
  • @neilfws 抱歉,从 excel 复制粘贴。分号分隔的 CSV。
  • @klonq :如果你不确定 s_data 包含什么,你应该记得使用str(s_data)names(s_data)。您会立即看到 Main status 实际上是 Main.status

标签: r csv


【解决方案1】:

我相信空格会被点“。”取代导入 CSV 文件时。所以你会写例如Main.status。您可以通过输入names(s_data) 来查看名称。

【讨论】:

    【解决方案2】:

    除非你指定check.names=FALSE,否则R会将不是有效变量名的列名(例如包含空格或特殊字符或以数字开头)转换为有效的变量名,例如通过用点替换空格。试试names(s_data)。如果您确实使用 check.names=TRUE,则使用单反引号 (`) 将名称括起来。

    我还建议使用reshape 包中的rename(或者,这些天,dplyr::rename)。

    s_data <- read.csv2( file=f_name )
    library(reshape)
    s_df <- rename(s_data,ID="scada_id",
                   PlantNo="plant",DateTime="date",Main.status="main_code",
                   Additional.status="seco_code",MainStatustext="main_text",
                   AddStatustext="seco_test",Duration="duration")
    

    对于它的价值,tidyverse 工具(即readr::read_csv)具有相反的默认值;除非您明确要求,否则它们不会转换列名以使其成为合法的 R 符号。

    【讨论】:

      【解决方案3】:
      s_data <- read.csv( file=f_name , check.names=FALSE)
      

      【讨论】:

        猜你喜欢
        • 2015-02-08
        • 2021-01-17
        • 2015-02-17
        • 1970-01-01
        • 2019-03-17
        • 1970-01-01
        • 1970-01-01
        • 2017-07-21
        • 2016-07-20
        相关资源
        最近更新 更多