楼主: dut_lc
8330 5

[问答] 如何对中文文本正确分列读取 [推广有奖]

  • 0关注
  • 0粉丝

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2015-12-24
最后登录
2015-12-24

楼主
dut_lc 发表于 2015-12-24 12:50:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
附件是包含中文,请教如何能够将其正确分列读入data frame(不要对原始文件修改)。我尝试过read.csv,“利息归本”一行因为“股东代码”列为空,导致出错。而尝试用read.fwf,但中文和英文字符宽度不一致,不知道fileEncoding该怎样设置。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Coding Frame READ Fram DING frame 中文 英文 如何 股东

沙发
suimong 发表于 2015-12-24 18:08:29
老规矩,文本文件IO不推荐用base R函数。

  1. library(readr)
  2. loc <- locale(encoding = "GB18030")
  3. df <- read_table("20151222对账单查询.txt", skip = 2, locale = loc)
复制代码

藤椅
jiangbeilu 学生认证  发表于 2015-12-24 19:10:03
你把第一行的双横线什么的去掉。
然后再读应该就可以了。

板凳
jiangbeilu 学生认证  发表于 2015-12-24 19:25:23
你把两个数据都下载好。
data1.txt,与你上传的数据相比,删除了前面两行。

data1.rar里有data1.csv文件,这个文件,把data1.txt数据粘贴到Excel中,然后按照固定宽度分列得到的一个表格形式。
这样之后,在R里面,才能比较友好地读取出来。
  1. options(stringsAsFactors=FALSE)
  2. xx<- read.csv("data1.csv")
复制代码
不要怪R对数据要求高,是你得到的数据,事先就要进行一定的处理,才能直接读取。之后以不在R里操作,是因为全部是制表符分隔,有部分还是空的,这个会让表格错乱。

data1.rar

516 Bytes

本附件包括:

  • data1.csv

data1.txt

1.81 KB

已有 1 人评分经验 论坛币 收起 理由
李会超 + 40 + 10 热心帮助其他会员

总评分: 经验 + 40  论坛币 + 10   查看全部评分

Tomorrow is another day!

报纸
suimong 发表于 2015-12-25 00:12:42
jiangbeilu 发表于 2015-12-24 19:25
你把两个数据都下载好。
data1.txt,与你上传的数据相比,删除了前面两行。
前两行不用删,read.table有skip参数可以跳过文件开头的前n行。出问题的是你有些列是空的,但是没有任何区分。base R的read.table系列函数并不会做任何“智能”的猜测,而是直接报错。readr的read_table则会对数据结构进行一定程度的猜测,在你的情况下便是猜对了。

地板
jiangbeilu 学生认证  发表于 2015-12-25 09:10:02
suimong 发表于 2015-12-25 00:12
前两行不用删,read.table有skip参数可以跳过文件开头的前n行。出问题的是你有些列是空的,但是没有任何区 ...
是的,可以用readr里的read_table读取,如果数据量比较多的话,猜测很难检查出全体。我上面的方法,也会出现这样的问题。所以需要对数据做一定的预处理。

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

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