将txt文件读入R,以 "not"符号(Ø)分隔

标签 r

我正在尝试将一个大文件读入 R 中,该文件由“非”符号 (Ø) 分隔。我通常做的是使用文本编辑将此符号更改为分号,并将其另存为 csv 文件,但此文件太大,当我尝试这样做时,我的计算机不断崩溃。我尝试过以下选项:

my_data <- read.delim("myfile.txt", header = TRUE, stringsAsFactors = FALSE, quote = "", sep = "\t")

这会产生一个只有一行的数据框。我知道这是有道理的,因为我的文件不是用制表符分隔的,而是用非符号分隔的。但是,当我尝试将 sep 更改为 Ø 或\Ø 时,我收到以下消息:

Error in scan(file, what = "", sep = sep, quote = quote, nlines = 1, quiet = TRUE,  : 
  invalid 'sep' value: must be one byte

我也尝试过

my_data <- read.csv2(file.choose("myfile.txt"))

my_data <- read.table("myfile.txt", sep="\¬", quote="", comment.char="")

得到类似的结果。我搜索过与我类似的选项,但他的那种分隔符并不常用。

最佳答案

您可以尝试阅读它的piped 翻译。

设置:

writeLines("a¬b¬c\n1¬2¬3\n", "quux.csv")

工作内容:

read.csv(pipe("tr '¬' ','  < quux.csv"))
#   a b c
# 1 1 2 3

如果逗号不适合您,这与其他替换字符同样有效:

read.table(pipe("tr '¬' '\t'  < quux.csv"), header = TRUE)
#   a b c
# 1 1 2 3

tr 实用程序可在所有 Linux 上使用,它应该在 Macos 上可用,并且它包含在 Windows 的 Rtools 中(以及 git-bash,如果有的话)。

如果使用 pipe 时出现问题,您始终可以使用 tr 工具创建另一个文件(替换文本编辑器步骤):

system2("tr", c("¬", ","), stdin="quux.csv", stdout="quux2.csv")
read.csv("quux2.csv")
#   a b c
# 1 1 2 3

关于将txt文件读入R,以 "not"符号(Ø)分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64172815/

相关文章:

r - 每次我想在 R 中使用 foreach() 时,都必须注册 DoParallel() 和 stopCluster() 吗?

r - 从命令行安装 R 包

r - 向ggplot图添加表格

r - ggplot2 填充未正确转换 ggplotly 颜色映射

r - 网格上的 ggplot 和 R 中的 grobList

r - 如何防止 Shiny 的应用程序变灰?

r - 如何用R中的指定字符替换空格和字符?

r - R 中的 mpg 数据集

r - 如何在网上抓取 R 发布日期列表?

r - Rcpp 中的向量均值