[R] csv文件读取之逗号分隔符相关
来源:互联网 发布:无忧保姆 知乎 编辑:程序博客网 时间:2024/06/15 07:54
昨天读取csv文件又双叒叕失败了
问题描述
- 本来不同行的数据诡异的读到一个数据格子(姑且这么说吧)里了
- 数据内部的逗号被当成换行符处理了
2016/09/13更新
今天看到一个帖子朴素贝叶斯算法和R语言,用单引号”’”替换csv里的双引号’”’之后再用read.csv函数就不会出错了。。。。所以后面的内容不用看了。。。。。。
方案搜索
随便搜了下发现很多人都遇到过这个问题,但是没见到靠谱的方案
- 这篇文章从CSV文件中读取数据,使用逗号’,’分割问题 用正则表达式处理java中的csv文件读取。但是read.csv的
sep
参数貌似不支持直接套正则表达式。我用的read.csv('data//sms_spam.csv',stringsAsFactors = FALSE, sep = ',(?=([^\\"]*\\"[^\\"]*\\")*[^\\"]*$)')
,应该没写错表达式,但是报错invalid 'sep' value: must be one byte
。 - 之前也有碰到过类似问题,当时在出错的那一列插入一空白列解决了——虽然并不明白为什么。这次失效
最后解决
最后搞定纯属瞎猫碰到死耗子。抱着试试的想法用Rstudio的import dataset功能直接导入,结果就这么成了。
自动导入用的readr包里的read_csv函数而不是常用的read.csv函数。dataset <- read_csv(……)
不知道适不适用其他人的情况的说
番外:关于readr包加载后出现的一个小bug
背景:数据框spam,第一列type是因子变量
正常操作时,如果要读取列a的level或者factor时,能想到的不外乎如下,其中第三种方式不支持。
#方式1> levels(spam$type)[1] "ham" "spam"Levels: ham spam> factor(spam$type[1:5])[1] ham ham spam ham ham Levels: ham spam#方式2> levels(spam[,1])[1] "ham" "spam"> factor(spam[,1][1:5])[1] ham ham spam ham ham #方式3> levels(spam[1])NULL> factor(spam[1][1:5])Error in `[.data.frame`(spam[1], 1:5) : 选择了未定义的列
但是加载readr包之后,方式2也不支持了
library(readr)#方式1> levels(spam$type)[1] "ham" "spam"> factor(spam$type[1:5])[1] ham ham spam ham ham Levels: ham spam#方式2> levels(spam[,1])NULL> factor(spam[,1])Error in sort.list(y) : 'sort.list'的'x'必需为原子值你是不是在串列上调用了'sort'函数?#方式3> levels(spam[1])NULL> factor(spam[1])Error in sort.list(y) : 'sort.list'的'x'必需为原子值你是不是在串列上调用了'sort'函数?
原因嘛我当然是不知道了~~~~
阅读全文
0 0
- [R] csv文件读取之逗号分隔符相关
- CSV(逗号分隔)、文本文件(制表符分隔) 等文件的读取
- CSV逗号分隔符文件解析
- C++读取CSV文件,并将逗号分隔符文件分割成N个数组
- CSV逗号分隔值文件
- Python读取csv文件分隔符设置
- Mysql导出逗号分隔的csv文件
- java读取csv文件内容(逗号分隔、回车换行文本)
- 加载读取CSV,txt逗号分格值文件
- 基于Java的CSV格式文件处理(excel逗号分隔符文件)
- 利用Apache Common CSV读用逗号分隔的文件
- csv(逗号分隔值)文件用Excel编辑
- R语言读取csv文件
- 逗号分隔的值--CSV
- [概念]CSV逗号分隔值
- c++逗号分隔符文本读取
- R语言读取csv文件出错
- 导出到csv 文件(逗号分隔文件)不用poi 导出文件
- Android中Handle机制源码解析
- 第一篇文章
- 堆排序算法
- HDU-5826 physics(物理定理+微分方程)
- Java技术----Java泛型详解
- [R] csv文件读取之逗号分隔符相关
- Jenkins与Docker相关的Plugin使用
- IT行业Java编程培训学习方法有哪些?
- Chrome Shortcuts快捷键
- jQuery中ajax接收数据时都能接收什么类型
- 写一点我自己做平衡小车的经验吧
- cropper.js HTML5 裁剪图片 canvas 转base64
- EXCEL跨两张表插入查询数据
- C++ 设计模式-单例-工厂