Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何解析数据框中的文本?_R_Parsing - Fatal编程技术网

R 如何解析数据框中的文本?

R 如何解析数据框中的文本?,r,parsing,R,Parsing,这是我想从中获取数据的网络。 我可以从网络上以txt格式下载,如何才能将数据作为数据帧?我认为这是一个非常有趣的问题,不幸的是,这个问题可能会被解决,因为OP没有显示任何解决问题的努力。问题是如何从文本文件中提取数字表 您应该首先使用grep在文本中检测表的开始和结束 使用read.fwf读取分隔数据 使用一些正则表达式和toString将双标头更改为简单标头 这是我的代码: ll <- readLines('allo1.txt') i1 <- grep('Country',ll)

这是我想从中获取数据的网络。


我可以从网络上以txt格式下载,如何才能将数据作为数据帧?

我认为这是一个非常有趣的问题,不幸的是,这个问题可能会被解决,因为OP没有显示任何解决问题的努力。问题是如何从文本文件中提取数字表

您应该首先使用grep在文本中检测表的开始和结束 使用read.fwf读取分隔数据 使用一些正则表达式和toString将双标头更改为简单标头 这是我的代码:

ll <- readLines('allo1.txt')
i1 <- grep('Country',ll)
i2 <- grep('Grand Total',ll)
dat <- read.fwf(textConnection(ll[c(seq(i1+3,i2,1))]),
         widths = c(20,-1,rep(c(7,-1),13)))
dat.h <- read.fwf(textConnection(ll[c(i1-1,i1)]),
         widths = c(20,-1,rep(c(7,-1),13)))
nn <- unlist(lapply(dat.h,function(x)gsub('\\s|[*]','',toString(rev(unlist(x))))))
names(dat) <- nn

             Country, 2013,Apr 2013,Mar 2013,Feb 2013,Jan 2012,Dec 2012,Nov 2012,Oct 2012,Sep 2012,Aug 2012,Jul 2012,Jun 2012,May 2012,Apr
1  China, Mainland        1264.9   1270.3   1251.9   1214.2   1220.4   1183.1   1169.9   1153.6   1155.2   1160.0   1147.0   1164.0   1164.4
2  Japan                  1100.3   1114.3   1105.5   1103.9   1111.2   1117.7   1131.9   1128.5   1120.9   1119.8   1108.4   1107.2   1087.9
3  Carib Bnkng Ctrs 4/     273.1    283.9    280.3    271.8    266.2    263.5    273.5    261.1    263.9    247.6    244.6    243.2    237.3
4  Oil Exporters 3/        272.7    265.1    256.8    261.6    262.0    259.1    262.2    267.2    269.1    268.4    270.2    260.6    262.2
5  Brazil                  252.6    257.9    256.5    254.1    253.3    255.9    254.1    251.2    259.8    256.5    244.3    245.8    245.9
ll <- readLines('allo1.txt')
i1 <- grep('Country',ll)
i2 <- grep('Grand Total',ll)
dat <- read.fwf(textConnection(ll[c(seq(i1+3,i2,1))]),
         widths = c(20,-1,rep(c(7,-1),13)))
dat.h <- read.fwf(textConnection(ll[c(i1-1,i1)]),
         widths = c(20,-1,rep(c(7,-1),13)))
nn <- unlist(lapply(dat.h,function(x)gsub('\\s|[*]','',toString(rev(unlist(x))))))
names(dat) <- nn

             Country, 2013,Apr 2013,Mar 2013,Feb 2013,Jan 2012,Dec 2012,Nov 2012,Oct 2012,Sep 2012,Aug 2012,Jul 2012,Jun 2012,May 2012,Apr
1  China, Mainland        1264.9   1270.3   1251.9   1214.2   1220.4   1183.1   1169.9   1153.6   1155.2   1160.0   1147.0   1164.0   1164.4
2  Japan                  1100.3   1114.3   1105.5   1103.9   1111.2   1117.7   1131.9   1128.5   1120.9   1119.8   1108.4   1107.2   1087.9
3  Carib Bnkng Ctrs 4/     273.1    283.9    280.3    271.8    266.2    263.5    273.5    261.1    263.9    247.6    244.6    243.2    237.3
4  Oil Exporters 3/        272.7    265.1    256.8    261.6    262.0    259.1    262.2    267.2    269.1    268.4    270.2    260.6    262.2
5  Brazil                  252.6    257.9    256.5    254.1    253.3    255.9    254.1    251.2    259.8    256.5    244.3    245.8    245.9