首页 > 解决方案 > 将csv文件读入R的问题

问题描述

刚从 R 开始并尝试将一个巨大的 csv 文件读入 R。

原始数据包含 3452 个观测值和 1331 个变量。(我在 Windwos 10 上使用 64 位版本的 R。)

行数据文件如下所示:

我试过了:

  1. mydata <- read.csv(file="piaac.csv", header = TRUE,na.strings="?", sep=",")
  2. mydata <- read.csv(file="piaac.csv", header = TRUE,na.strings="?", sep=",", dec = ".")

但是在将文件读入 R 之后,所有值都在一个变量(列)下,而其他列(1331)仅包含所有 3452 行的“NA”值。R中的数据文件

有谁知道如何解决这一问题?

谢谢

标签: rcsv

解决方案


我怀疑您的图像来自电子表格,在这种情况下,带有逗号的“列”将使用引号分隔保存,以将逗号保留在一个单元格中。一种测试方法:

writeLines(c('"a,b"','"1,2"','"3,4"'), "foo.csv")
dat <- readLines("foo.csv")
dat[1:2]
# [1] "\"a,b\"" "\"1,2\""

read.csv("foo.csv") ### obviously a problem
#   a.b
# 1 1,2
# 2 3,4

(注意额外的前导/尾随双引号。)

我认为最终这应该在源头上解决,因为它可以说是任何创建(或错误编辑)该文件的问题。在那之前,这里有一个可能的 R 修复:

read.csv(text = gsub('(^"|"$)', '', readLines("foo.csv")))
#   a b
# 1 1 2
# 2 3 4

推荐阅读