r - 将csv文件读入R的问题
问题描述
刚从 R 开始并尝试将一个巨大的 csv 文件读入 R。
原始数据包含 3452 个观测值和 1331 个变量。(我在 Windwos 10 上使用 64 位版本的 R。)
我试过了:
- mydata <- read.csv(file="piaac.csv", header = TRUE,na.strings="?", sep=",")
- mydata <- read.csv(file="piaac.csv", header = TRUE,na.strings="?", sep=",", dec = ".")
但是在将文件读入 R 之后,所有值都在一个变量(列)下,而其他列(1331)仅包含所有 3452 行的“NA”值。R中的数据文件
有谁知道如何解决这一问题?
谢谢
解决方案
我怀疑您的图像来自电子表格,在这种情况下,带有逗号的“列”将使用引号分隔保存,以将逗号保留在一个单元格中。一种测试方法:
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
推荐阅读
- python - socket.gaierror:[Errno -3] 名称解析和 urllib.error.URLError 临时失败:
- laravel - Laravel 任务调度程序没有自动运行命令
- django - 如何修复“无法重新启动 gunicorn.service:未找到单元 gunicorn.socket。” 错误?
- java - 无法解析类 android.support.v7.widget.Toolbar
- camera-calibration - 将任意 3D 点投影到图像平面中的一个点给出任意结果
- woocommerce - 基于邮政编码的 Woocommerce 结帐字段
- php - 如何解决 Laravel 函数中的全局变量声明而不是普通的 PHP?
- java - 重定向到正确的静态页面页面
- opencv - 如何改进 mp4 视频片段上的 ArUco 标记跟踪
- javascript - 使用 Context API 响应输入 onChange 问题