在使用readTableHeader()读取标签分隔的文本文件时,我得到了以下错误消息:“read.delim找到了不完整的最后一行”。标题和内容中都有繁体汉字,因此我已经在使用替代编码,如下所示:
kg = read.delim("KG_EDB_20150505.csv",fileEncoding="UTF-16LE")
Warning message:
In read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on 'KG_EDB_20150505.csv'
我曾阅读过其他有类似问题的帖子,例如:
'Incomplete final line' warning when trying to read a .csv file into R In read.table(): incomplete final line found by readTableHeader
但不幸的是,这些帖子中提出的解决方案不能解决问题。
对已进行的审判等的概述:
那是怎么回事?
我有办法在这样的文件里读到吗?
或
有没有办法按摩文件(最好是在R中),然后把它读进去?
文件在这里:
这是来自一个政府网页:
http://www1.map.gov.hk/gih3/view/index.jsp
(地图工具>资料下载>幼稚园暨幼儿中心)
事先非常感谢!
更新:
幸运的是,我在文本文件中分离出一个冒犯的字符,即这个汉字"稚“。它可能不是唯一的一个,但是如果我将它添加到#3中的文件中,同样的错误会再次出现。我不知道这个字有什么特别之处,我也不需要任何中文文本文件中的信息。
所以现在还有更多的问题:
或
发布于 2015-06-08 21:42:45
它充满了汉字(实际上是所有其他字段)。
第一行:
“英语类别”"中文類別“、"中文名稱”、“英语地址”、"中文地址“、”经度“、"經度”、“纬度”、"緯度“、"坐標東”、"坐標北“学生性别、"就讀學生性別”期、"學校授課時間“区"分區”“金融型”"資助種類“”学校级“"學校類型”“學校類型”"開放時間“”电话“"聯絡電話”“传真号码”"傳真號碼“”电子邮件地址“"電郵地址”网站"網頁“宗教”宗教“
我的编辑认为它是UTF-16,而且是“小Endian”。
除非您设置了正确的字体,并理解编码的整数,否则使用外部编辑器要容易得多,特别是因为您说您不需要中文字段中的信息。我成功地使用了来自Bare Bones软件的TextWrangler编辑器。这是他们更完整的编辑器的免费版本,但它有能力删除非ASCII字符,并保存为UTF-8编码文件。
> inp <- read.table("~/Downloads/KG_EDB_20150505.txt", header=TRUE)
> str(inp)
'data.frame': 1385 obs. of 36 variables:
$ ENGLISH.CATEGORY: Factor w/ 1 level "Kindergartens": 1 1 1 1 1 1 1 1 1 1 ...
$ X : logi NA NA NA NA NA NA ...
$ ENGLISH.NAME : Factor w/ 1368 levels "A-ONE KINDERGARTEN",..: 137 38 835 714 858 551 455 533 1073 396 ...
$ X.1 : Factor w/ 68 levels "","-()","()",..: 5 3 3 5 3 3 3 3 3 3 ...
$ ENGLISH.ADDRESS : Factor w/ 562 levels "(INCLUDING 1-STOREY SCHOOL EXTENSION) 23 NAM LONG SHAN ROAD ABERDEEN HONG KONG",..: 448 40 34 316 396 55 326 160 273 483 ...
$ X.2 : Factor w/ 294 levels "","()","()29",..: 257 1 21 1 1 112 1 59 1 289 ...
$ LONGITUDE : Factor w/ 416 levels "113-51-49","113-51-54",..: 101 302 406 60 314 167 189 104 330 363 ...
$ X.3 : Factor w/ 416 levels "113-51-49","113-51-54",..: 101 302 406 60 314 167 189 104 330 363 ...
$ LATITUDE : Factor w/ 397 levels "22-12-36","22-13-10",..: 150 257 139 357 388 139 167 160 383 377 ...
$ X.4 : Factor w/ 397 levels "22-12-36","22-13-10",..: 150 257 139 357 388 139 167 160 383 377 ...
$ EASTING : num 836221 828924 834914 818325 828492 ...
$ X.5 : num 836221 828924 834914 818325 828492 ...
$ NORTHING : num 821002 826433 820623 835893 840814 ...
$ X.6 : num 821002 826433 820623 835893 840814 ...
$ STUDENTS.GENDER : Factor w/ 2 levels "CO-ED","GIRLS": 1 1 1 1 1 1 1 1 1 1 ...
$ X.7 : logi NA NA NA NA NA NA ...
snipped.
标题中有中文的字段现在都是空白的。这不是csv文件..。没有逗号。如果我再为自己做一次,我会用stringsAsFactors =FALSE
还可以用正确的编码输入文件。这在没有编辑的情况下对原始文件起作用:
> inp2 <- read.table("~/Downloads/KG_EDB_20150505.csv", header=TRUE, fileEncoding="UTF-16")
> str(inp2)
'data.frame': 1385 obs. of 36 variables:
$ ENGLISH.CATEGORY: Factor w/ 1 level "Kindergartens": 1 1 1 1 1 1 1 1 1 1 ...
$ 中文類別 : Factor w/ 1 level "幼稚園": 1 1 1 1 1 1 1 1 1 1 ...
$ ENGLISH.NAME : Factor w/ 1368 levels "A-ONE KINDERGARTEN",..: 137 38 835 714 858 551 455 533 1073 396 ...
$ 中文名稱 : Factor w/ 1355 levels "","DISCOVERY BAY INTERNATIONAL SCHOOL (A.M.)",..: 1186 507 854 630 64 134 1298 147 520 1256 ...
$ ENGLISH.ADDRESS : Factor w/ 562 levels "(INCLUDING 1-STOREY SCHOOL EXTENSION) 23 NAM LONG SHAN ROAD ABERDEEN HONG KONG",..: 448 40 34 316 396 55 326 160 273 483 ...
$ 中文地址 : Factor w/ 554 levels "34 PRICE ROAD HONG KONG",..: 32 395 51 259 173 37 58 28 176 370 ...
$ LONGITUDE : Factor w/ 416 levels "113-51-49","113-51-54",..: 101 302 406 60 314 167 189 104 330 363 ...
$ 經度 : Factor w/ 416 levels "113-51-49","113-51-54",..: 101 302 406 60 314 167 189 104 330 363 ...
$ LATITUDE : Factor w/ 397 levels "22-12-36","22-13-10",..: 150 257 139 357 388 139 167 160 383 377 ...
$ 緯度 : Factor w/ 397 levels "22-12-36","22-13-10",..: 150 257 139 357 388 139 167 160 383 377 ...
$ EASTING : num 836221 828924 834914 818325 828492 ...
$ 坐標東 : num 836221 828924 834914 818325 828492 ...
$ NORTHING : num 821002 826433 820623 835893 840814 ...
$ 坐標北 : num 821002 826433 820623 835893 840814 ...
snipped.
https://stackoverflow.com/questions/30723230
复制相似问题