7260 7

[问答] R语言读取txt格式数据的疑惑 [推广有奖]

  • 0关注
  • 3粉丝

已卖:1032份资源

副教授

41%

还不是VIP/贵宾

-

威望
0
论坛币
24025 个
通用积分
10.3767
学术水平
2 点
热心指数
4 点
信用等级
1 点
经验
35545 点
帖子
353
精华
0
在线时间
570 小时
注册时间
2014-5-14
最后登录
2024-1-25

楼主
保险精算研究生 发表于 2017-7-15 22:34:44 |AI写论文
5论坛币
我想用R读取txt格式的数据,第一列为国家名称,第二、三列为出生率、死亡率。如图所示
由于第四行的国家名为两个单词,中间用空格分隔,还有HONG KONG。所以直接使用read.table("countries.txt", header = FALSE), 会报错:Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :  line 1 did not have 4 elements
然而,如果使用read.table("countries.txt", header = FALSE, fill = TRUE),虽然读取数据,但是会出现第五行这种情况,国家名的两个单词变成了两列。请问各位大神,如何处理才能正确读取这种数据?谢谢!请指教

2.png (6.87 KB)

2.png

关键词:txt格式 txt R语言 Countries Hong Kong

沙发
保险精算研究生 发表于 2017-7-15 23:12:17
我的数据是这样的,尝试用countries <- read.fwf('countries 1.txt', widths = c(15,4,9))读取,结果成功。
(开始也报错:Warning message: In readLines(file, n = thisblock) :  incomplete final line found on '\countries 1.txt',我在最后一行之后敲了一下回车,从数据附件内可见,再读取成功)

藤椅
保险精算研究生 发表于 2017-7-15 23:20:22
这是Stack Overflow中的一个解释,但我并不明白其中奥秘:In most cases, Incomplete final line warnings can be averted by appending a new line to the file you are trying to open. Just go to the end of file -> press enter -> Save the file -> re-run whatever command you are using to load it in R and it shall show no warning.

板凳
learntongji 发表于 2017-7-16 01:43:31
我用了这个语句 read.table("countries_1.txt", header=FALSE, sep="\t",fill=TRUE, blank.lines.skip=TRUE,strip.white=TRUE),没什么问题。

countries.png (29.68 KB)

countries.png

报纸
nuomin 发表于 2017-7-16 08:14:38
为了省麻烦,先把数据导入到excel,再用CSV格式保存,读入R。

地板
保险精算研究生 发表于 2017-7-16 11:14:36
learntongji 发表于 2017-7-16 01:43
我用了这个语句 read.table("countries_1.txt", header=FALSE, sep="\t",fill=TRUE, blank.lines.skip=TRUE ...
但是,这样读入的数据只有一列。

捕获.JPG (18.86 KB)

捕获.JPG

7
保险精算研究生 发表于 2017-7-16 11:15:48
nuomin 发表于 2017-7-16 08:14
为了省麻烦,先把数据导入到excel,再用CSV格式保存,读入R。
这确实也是一种方法,也有相关帖子给出此建议,谢谢您的回复

8
保险精算研究生 发表于 2017-7-16 11:31:30
learntongji 发表于 2017-7-16 01:43
我用了这个语句 read.table("countries_1.txt", header=FALSE, sep="\t",fill=TRUE, blank.lines.skip=TRUE ...
如何在您的代码的基础上划分成三列呢,又要向您请教了

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

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