R 读取缺少某些数据的txt文件
我确实意识到类似的问题已经被提出,但考虑到所提供的答案都不能解决我的问题,挫折感开始出现。问题如下:我有27个相同形状的txt格式的时间序列数据(日期、打开、高、低、最后),我想将它们导入R as.txt文件中,以便第一行读取的是包含所有5个数据的数据。下面给出的示例显示,虽然文本文件中的数据从1984-01-03开始,但我希望该文件从1990-11-05开始读取(因为早期日期缺少Open),将日期的第一列保存为行名,并将其他4列保存为数字,每个列都有明显的名称R 读取缺少某些数据的txt文件,r,rdata,R,Rdata,我确实意识到类似的问题已经被提出,但考虑到所提供的答案都不能解决我的问题,挫折感开始出现。问题如下:我有27个相同形状的txt格式的时间序列数据(日期、打开、高、低、最后),我想将它们导入R as.txt文件中,以便第一行读取的是包含所有5个数据的数据。下面给出的示例显示,虽然文本文件中的数据从1984-01-03开始,但我希望该文件从1990-11-05开始读取(因为早期日期缺少Open),将日期的第一列保存为行名,并将其他4列保存为数字,每个列都有明显的名称 Open
Open High Low Last
1984-01-03 1001.40 997.50 997.50
1984-01-04 999.50 993.30 998.60
1990-11-05 2038.00 2050.20 2038.00 2050.10
1990-11-06 2055.00 2071.00 2052.20 2069.80
鉴于这是一个常见问题,我尝试了以下代码:
ftse <- read.table("FTSE.txt", sep="", quote="", dec=".", as.is=TRUE,
blank.lines.skip=TRUE, strip.white=TRUE,na.strings=c("","NA"),
row.names=1, col.names=c("Open","High","Low","Last"))
第1731行对应于日期1984-01-03。我诚恳地请求帮助,因为我不能再在这些问题上浪费时间,所以请提供建议,我如何解决这些问题。提前谢谢。我不知道一般的解决方案可能是什么,但readLines和read.fwf的组合可能适用于您的情况:
ftse.lines <- readLines("FTSE.txt")
ftse.lines <- ftse.lines[ftse.lines != ""] # skip empty lines
ftse <- read.fwf(textConnection(ftse.lines), widths=c(11,8,8,8,8), skip=1, row.names=1)
names(ftse) <- c("Open", "Hi", "Lo", "Last")
ftse.lines
ftse.lines <- readLines("FTSE.txt")
ftse.lines <- ftse.lines[ftse.lines != ""] # skip empty lines
ftse <- read.fwf(textConnection(ftse.lines), widths=c(11,8,8,8,8), skip=1, row.names=1)
names(ftse) <- c("Open", "Hi", "Lo", "Last")
ftse <- read.fwf("FTSE.txt", widths=c(11,8,8,8,8), col.names=c("blah", "Open", "Hi", "Lo", "Last"), skip=1)