楼主: sneezeasd
5004 7

[问答] 用R导入大量数据时遇到了问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
29554 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
265 点
帖子
7
精华
0
在线时间
31 小时
注册时间
2015-8-16
最后登录
2022-3-26

楼主
sneezeasd 发表于 2016-11-15 10:07:53 |AI写论文
300论坛币
A:尝试过以下的语句导入数据:userface1114_new <- read.table("userface-20161114.csv",header=TRUE,row.name=1,sep=",")
和路径的完整版,均显示:
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
  2行没有44元素

在widows的文件夹汇总预览的结果如下:
windows预览.jpg

B:后来尝试使用另一个帖子的方法把数据导入了:
userface1114_new <- read.table("userface-20161114.csv",header=F,colClasses="character")
不过只有一行...通过dplyr转化后显示:
r显示.jpg

A中导入失败是因为导入的数据汇总含有#吗?含有#的数据如何导入r;如果无法正常的通过A导入数据,通过B导入的数据只有一列,如何拆分列,如何将#正常的识别出来?

---------------------------------------

经过排查,应该是和某些变量里含有特殊符号有关,其中一个含有“,”和分割符“,”导致列长度不一致,某些向量含有“#”使导致一些元素被注释掉了,产生了元素的缺失;
不过没有找到好的将“,”“#”导入R的方法,只好将分割符换成了^,同时使用access将所有的“#”替换成了“-”
.
.
.
然而还是报错...第5000多行的第44元素(注:最后一个元素)缺失,当时我是崩溃的
.
.
.
然后使“用户名”作为主key在access里把它分成了两个表,将之前含有特殊符号的几个变量全部放到另一个表了
.
.
.
居然神奇的分别导入R成功了,而且合并也成功...
.
.
.
问题虽然解决了,但是原因还是没查清楚,也没弄明白特殊符号怎么导入R![叹气]

最佳答案

飞天玄舞6 查看完整内容

再一个,你别只用read.table啊,用read.csv试一试。
关键词:Face 导入数据 User NEW FAC

沙发
飞天玄舞6 在职认证  发表于 2016-11-15 10:07:54
sneezeasd 发表于 2016-11-15 13:53
userface1114_new
再一个,你别只用read.table啊,用read.csv试一试。

藤椅
飞天玄舞6 在职认证  发表于 2016-11-15 11:51:39
在用read.table读取csv文件时需设置分割符号sep=",",B中没设置
已有 1 人评分经验 学术水平 收起 理由
李会超 + 80 + 1 精彩帖子

总评分: 经验 + 80  学术水平 + 1   查看全部评分

板凳
飞天玄舞6 在职认证  发表于 2016-11-15 11:52:34
A中行名不能用数字

报纸
sneezeasd 发表于 2016-11-15 13:49:05
飞天玄舞6 发表于 2016-11-15 11:51
在用read.table读取csv文件时需设置分割符号sep=",",B中没设置
B中设置了sep=","还是同样报错,报错的语句一样,去掉之后正常导入,只是只要一列了

地板
sneezeasd 发表于 2016-11-15 13:53:49
飞天玄舞6 发表于 2016-11-15 11:52
A中行名不能用数字
userface1114_new <- read.table("userface-20161114.csv",header=TRUE,row.name=name,sep=",")
应该和行名无关,将行名修改为name,还是报错:
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
2行没有44元素

7
飞天玄舞6 在职认证  发表于 2016-11-15 14:42:29
sneezeasd 发表于 2016-11-15 13:49
B中设置了sep=","还是同样报错,报错的语句一样,去掉之后正常导入,只是只要一列了
不过,B中的问题还真是有sep分割不对的问题。
既然你这样读进去了,你可以用tidyr包中的separa函数分割开来,只不过你的变量太多了,设置的时候肯定有些麻烦。你可以再见查查数据格式问题

8
sneezeasd 发表于 2016-11-17 17:10:55
飞天玄舞6 发表于 2016-11-15 14:43
再一个,你别只用read.table啊,用read.csv试一试。
read,table和read.csv的效果一样[叹气]
经过排查,应该是和某些变量里含有特殊符号有关,其中一个含有“,”和分割符“,”导致列长度不一致,某些向量含有“#”使导致一些元素被注释掉了,产生了元素的缺失;
不过没有找到好的将“,”“#”导入R的方法,只好将分割符换成了^,同时使用access将所有的“#”替换成了“-”
.
.
.
然而还是报错...第5000多行的第44元素(注:最后一个元素)缺失,当时我是崩溃的
.
.
.
然后使“用户名”作为主key在access里把它分成了两个表,将之前含有特殊符号的几个变量全部放到另一个表了
.
.
.
居然神奇的分别导入R成功了,而且合并也成功...
.
.
.
问题虽然解决了,但是原因还是没查清楚,也没弄明白特殊符号怎么导入R![叹气]
还是非常感谢您耐心的回复~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 21:25