R无法读取用Excel另存的CSV文件?记录我学习R语言踩的第一个坑

这是一个真实的故事!


故事正文:

今天我在学习《R语言实战》这本书,学到了数据的输入,从带分隔符的文本文件导入数据,书中讲到了下面这个例子↓

听说学习R语言的好习惯就是要亲手键入代码,所以看到书中的例子我都会亲手在Rstudio里亲手输入代码,实际操作一遍,但是我没有上面的这个CSV文件,怎么办呢?做了多年会计的我,知道的唯一快捷方法就是在Excel表格中输入上面的内容,然后另存为CSV格式。

于是我就打开了Excel,一个字符一个字符的把书上的文件内容敲了进去,然后保存为了CSV。
接着我就按照书上的代码开始操作了,代码如下:

grades <- read.table("studentgrades.csv", header = TRUE,
                      row.names = "StudentID", sep = ",")

结果报错,如下:

我用Notepad++打开原文件看是不是文件字符有问题,但是并没有发现什么问题↓

我对文件进行了各种修改,比如删除引号,加上引号等等各种尝试,然后读取,折腾了一个多小时,还是无法读入。于是我就开始修改代码进行尝试。最终我把row.names参数去掉,把文件读进来了,代码和结果如下:

grades <- read.table("studentgrades.csv", header = TRUE,
                     sep = ",")
grades

读是读进来了,可是可以看到第一行第一列StudentID的首字母变成了两个中文乱码,我又打开文件,把S删除,再次读入,乱码还是在那里,只是换了一个字符↓

我又进行了各种删除操作,这中文乱码就像打不死的小强一样,任我怎么删除,都删不掉,只是变换不同字符,一直在那里,真是气人啊!
于是我就把截图发给了大神,问他文件里有乱码读不进R怎么办?然后他就给我甩来了下面这篇公众号文章↓

重复不出来我费九牛二虎之力重复不出来的GSEA文章?

我就打开文章看了看,原来是需要修改电脑的默认字符编码为英文,于是我就照葫芦画瓢,运行了一下文章里用的代码↓

Sys.setlocale()
Sys.setlocale("LC_ALL", "English")

把编码语言改成了英文↓

再一次读取文件↓

grades <- read.table("studentgrades.csv", header = TRUE,
                     sep = ",")
grades

结果如下↓

ε=ε=ε=(#>д<)ノ我真是哭笑不得了,乱码也跟着从中文乱码变成了英文乱码!真的是打不死的妖精了!!!
唉,这样折腾来折腾去,一上午时间都没了,又截图发给大神,他也不回我了,显然他太忙没空搭理我了。于是我就去吃中午饭去了。

下午回来,想到这个没解决的问题,我还是不甘心,无心做其他的事情。于是我又打开了Rstudio。现在已经找到了读取不来文件是因为有乱码存在,难道是我用Excel创建文件的时候不小心输入了什么肉眼无法看见的东西??那我就用其他方法再创建一个CSV文件试一下吧。

于是我就活学活用,使用上午刚学的edit()函数再R中输入数据,然后保存为CSV文件↓

grades2 <- data.frame(StudentID = character(0),
                      First = character(0),
                      Last = character(0),
                      Math = numeric(0),
                      Science = numeric(0),
                      Social.Studies = numeric(0))
grades2 <- edit(grades2)

运行上面的函数,就出现了下面这个编辑器↓

我把内容填入上面的框框,关掉对话框,然后把这个grades2数据框写入CSV文件↓

write.table(grades2, "studentgrades2.csv", row.names = FALSE, sep = ",")

然后我的文件夹里就多了这个studentgrades2.csv,打开看一下是这样的↓

然后读取↓

read.table("studentgrades2.csv", header = TRUE,
           row.names = "StudentID", sep = ",")

这回轻轻松松就读进来了↓


嘿嘿(**),太高兴了! 不过这并没有解决第一个文件读不进来的问题。于是我就把第一个文件的内容全部删除,然后把第二个文件的内容全选复制粘贴进第一个文件内,保存,再次尝试读取。

还是跟之前一样的乱码o(╥﹏╥)o↓

我又重复了几遍全选复制粘贴,还是一样的结果。明明是一样的内容啊,为什么会这样??然后我分别选中两个文件,点击鼠标右键查看属性里文件的大小,果然——第一个文件比第二个文件大了3字节↓

我把第一个文档中的所有内容删除,再查看属性,大小还有3字节!!!真是活见鬼了!!!

真是奇怪了!奇怪了!正奇怪着,我发现Notepad++上面还有蛮多菜单栏的,我就想能不能在上面找到清空文件的按钮呢?找来找去没找到,但是我发现了下面这个菜单选项是可以修改的↓

对,就是这个Encoding菜单,我又去查看了一下文件2里是什么选项,发现果然和文件1的不一样↓

于是我把文件1修改为和文件2的一样,为Encode in UTF-8

果然!!!!!!!!

乱码没了! 文件可以读取了!!

这时我想起了我用Excel另存为CSV文件选择文件类型的时候似乎有看见这个UTF-8,于是我又去另存为看了看,果然有两种CSV文件可供选择↓


而我当时选择的是上面那个CSV UTF-8(逗号分隔),没有看见下面的那个CSV(逗号分隔),于是造成了今天的悲剧ε(┬┬﹏┬┬)3

记得以后,Excel保存CSV的时候一定要选择CSV(逗号分隔),不能选CSV UTF-8(逗号分隔)

虽然我不懂UTF-8到底是啥意思,不过通过我的摸索,总结了这么条经验,也算是功夫不负有心人了,嘿嘿!

也感谢这次的出错,让我有内容可以写出一个故事,O(∩_∩)O哈哈~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容