r - 如何在 R 中读取分隔 "::"的 .dat 文件

标签 r csv data.table

我有一个带有“::”分隔符的文本文件。
当我阅读这个文件时,如下所示。

tmp <- fread("file.dat", sep="::")  
tmp <- read.table("file.dat", sep="::")

有一个'sep' must be 'auto' or a single characterinvalid 'sep' value: must be one byte错误信息。

我怎样才能读取这个文件?

最佳答案

你可以试试

fread("cat file.dat | tr -s :", sep = ":")
fread()允许在其第一个参数中进行系统调用。这个用tr -s ,这是一个“挤压”命令,替换 : 的重复项该字符只出现一次。

有了这个电话,fread()甚至可以识别 sep自动参数,无需命名。

使用相同的概念,您可以采用的另一种方法(使用示例文件“x.txt”)是
writeLines("a::b::c", "x.txt")
read.table(text = system("cat x.txt | tr -s :", intern = TRUE), sep = ":")
#   V1 V2 V3
# 1  a  b  c

我不确定这如何转化为基于 Windows 的系统。

关于r - 如何在 R 中读取分隔 "::"的 .dat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30387482/

相关文章:

python - 使用 Python 修复 CSV

在 R 中按组对数据表的日期范围滚动求和

在 R 中用双引号读取文件

r - 删除矩阵中的重复列

r - 使用 dplyr::rowwise 设置操作

java - 使用“加载数据到”将 CSV 文件加载到 mysql 表。如何将以下查询转换为 JOOQ?

csv - 从具有多行字段的大型 csv 中删除重复行

r - R中组中的ifelse函数组

r - 创建包含预算内所有组合的矩阵

r - 为什么 S4 类的打印调用 `show` 没有命名空间?