gpt4 book ai didi

r - 如何读取以下格式的文件

转载 作者:行者123 更新时间:2023-12-01 09:14:40 24 4
gpt4 key购买 nike

我有很多文件想要阅读。文件的格式如下所示。

我尝试了多种包格式来阅读此内容,但似乎都不起作用。应跳过以“-”开头的行。文件中大约有 102 列,但我只显示了其中的几列。以“-”开头的行实际上位于第一行、第三行和最后一行。

文件格式如下

------------------------------------------------
|Delivery |Created by |Time |Created on|SDst|
------------------------------------------------
|84181375 |BATCHJOBMGR|19:33:47|01/05/2017| |
|84181376 |BATCHJOBMGR|19:33:47|01/05/2017| |
------------------------------------------------

我尝试了以下方法:

使用read.table

temp <- read.delim(file="LIKP_01012016_01312016.txt", header=TRUE, 
stringsAsFactors=FALSE,
strip.white=TRUE, sep="|", skip = 1, comment.char = "-")

使用数据表

temp <- fread(input="LIKP_01012017_01312017.txt",  
stringsAsFactors=FALSE, strip.white=TRUE,
sep="|",quote = "-", skip=1)

显然我没有做正确的事情。你能帮我阅读这些文件吗?

提前致谢。

萨蒂什

最佳答案

1) 在示例数据中,唯一的负号是虚线。如果您的真实数据也是如此,那么以下内容应该有效。将 text = Lines 替换为 "LIKP_01012016_01312016.txt" 。请注意,comment.char = "-" 会导致任何带有减号的行都具有该减号以及该减号之后的所有内容,从而有效地将减号行变成空行。

read.table(text = Lines, header = TRUE, sep = "|", as.is = TRUE, 
comment.char = "-", check.names = FALSE, strip.white = TRUE)[2:6]

给予:

  Delivery  Created by     Time Created on SDst
1 84181375 BATCHJOBMGR 19:33:47 01/05/2017 NA
2 84181376 BATCHJOBMGR 19:33:47 01/05/2017 NA

2 如果数据中确实有减号,则只需跳过第一行,使用 fill = TRUE 并删除第一行和最后一行(这是剩余的行)全部带有减号)。

DF <- read.table(text = Lines, header = TRUE, sep = "|", as.is = TRUE, 
skip = 1, fill = TRUE, check.names = FALSE, strip.white = TRUE)[2:6]
n <- nrow(DF)
DF <- DF[-c(1, n), ]

注意:上述代码的输入为:

Lines <- "------------------------------------------------
|Delivery |Created by |Time |Created on|SDst|
------------------------------------------------
|84181375 |BATCHJOBMGR|19:33:47|01/05/2017| |
|84181376 |BATCHJOBMGR|19:33:47|01/05/2017| |
------------------------------------------------"

关于r - 如何读取以下格式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47764014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com