如何在 R 中将输出从 sub() 传输到 read.table()
How to pipe output from sub() to read.table() in R
我正在尝试阅读 csv from this website。每行以 \t
结尾,这导致 read.delim()
和 read.table()
将数据行视为比 header 行多 1 列,这会导致问题。
我可以使用以下代码轻松删除行尾的 \t
:
file.set <- "data_source.txt"
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
writeLines()
我想不通的是如何在不使用 writeLines()
写出文件的情况下将 sub()
命令的结果传送到 read.delim()
。我试过以下代码:
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
read.delim(quote = NULL)
# Error in file(file, "rt") : invalid 'description' argument
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
writeLines() %>%
read.delim(quote = NULL)
# [prints info from file.set to console]
# Error in read.table(file = file, header = header, sep = sep, quote = quote, :
# 'file' must be a character string or connection
问题很可能是我不明白如何正确使用连接(或者使用连接只是错误的方法)。我找到的关于在 R 中使用连接的教程主要是指从远程数据库获取数据,这让我觉得我做错了。
读入数据后,您实际上不需要将数据写出。您可以将其直接通过管道传递给 read.delim
的 text=
参数。例如
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
read.delim(text = .)
我无法打开您使用的实际文件(该行对我不起作用),但通常只读入带有额外列的数据然后在导入后删除会更容易。我不清楚 "problems" 你最初阅读文件时的体验究竟是什么。
我正在尝试阅读 csv from this website。每行以 \t
结尾,这导致 read.delim()
和 read.table()
将数据行视为比 header 行多 1 列,这会导致问题。
我可以使用以下代码轻松删除行尾的 \t
:
file.set <- "data_source.txt"
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
writeLines()
我想不通的是如何在不使用 writeLines()
写出文件的情况下将 sub()
命令的结果传送到 read.delim()
。我试过以下代码:
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
read.delim(quote = NULL)
# Error in file(file, "rt") : invalid 'description' argument
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
writeLines() %>%
read.delim(quote = NULL)
# [prints info from file.set to console]
# Error in read.table(file = file, header = header, sep = sep, quote = quote, :
# 'file' must be a character string or connection
问题很可能是我不明白如何正确使用连接(或者使用连接只是错误的方法)。我找到的关于在 R 中使用连接的教程主要是指从远程数据库获取数据,这让我觉得我做错了。
读入数据后,您实际上不需要将数据写出。您可以将其直接通过管道传递给 read.delim
的 text=
参数。例如
temp <- file.set %>%
readLines() %>%
sub(" \t$", "", .) %>%
read.delim(text = .)
我无法打开您使用的实际文件(该行对我不起作用),但通常只读入带有额外列的数据然后在导入后删除会更容易。我不清楚 "problems" 你最初阅读文件时的体验究竟是什么。