【问题标题】:How to treat thousands delimiter when importing csv file in R在R中导入csv文件时如何处理千位分隔符
【发布时间】:2013-11-28 16:06:06
【问题描述】:

我想在 R 中导入的数据集有问题。基本上我将一些经济数据导入 excel (MacOS),然后将第一张工作表保存为 csv 文件。

但是,当我导入它时:French_data

我得到这样的东西(有 6 列数据):

1 56\377695 ; 33\377713 ; 56\377836 ; 60\377339 ; 190\377418 ; 333\377382
2 57\377686 ; 33\377546 ; 57\377933 ; 60\377201 ; 190\377083 ; 334\377998
3 58\377296; 33\377393 ; 60\377121 ; 62\377610 ; 191\377775 ; 338\377832

所以,我有“;”我应该什么都没有,而不是分隔数千的空格,我有 \377(即第一个数字是 56 695)。我尝试了 dec 和 sep 的不同组合,但无济于事。

我知道这应该很简单,但我被困在这里...... 谢谢!

【问题讨论】:

  • 给我们你的French data.csv文件样本。
  • 我可以在这里上传文件吗?
  • 不需要完整的文件,将其粘贴到您的问题中,就像您在上面粘贴 3 行数据一样。
  • 投资公共支出进口出口消费GDP 56695 33713 56836 60339 190418 333382 57686 33546 57933 60201 190083 334998

标签: r excel csv


【解决方案1】:

使用read.csv2。它专为欧洲大陆的 csv 文件而设计。

read.csv 和 read.csv2 与 read.table 相同,除了 默认值。它们用于读取“逗号分隔值”文件 (‘.csv’) 或 (read.csv2) 在使用逗号的国家/地区使用的变体 作为小数点,分号作为字段分隔符。

【讨论】:

    【解决方案2】:

    read.table 没有千位分隔符选项。但是您可以手动过滤掉字符:

    French_data$column <- as.integer(gsub("\377", "", French_data$column))
    

    【讨论】:

    • 谢谢,这会有所帮助!
    【解决方案3】:

    如果您的数据以 Excel 开头,请考虑使用XLConnect package。与将 Excel 导出到 CSV 并导入它相比,我在这方面取得了更大的成功。所以,是这样的:

    library(XLConnect)
    myWB   <- "myWorkbook.xlsx" 
    wb     <- loadWorkbook(myWB)
    data   <- readWorksheet(wb, sheet="Sheet1")
    

    【讨论】:

    • 谢谢,我不知道。下次我会试试的!
    猜你喜欢
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多