如何使用像 " "," " 这样的分隔符
How use a separator like " "," "
我有问题。
我需要在 R 中导入数据,但分隔符是 ","
。
不只是一个逗号,而是一个被两个引号包围的逗号。
但是如果我把它作为分隔符,我有命令:
"DownloadFormat"="","".
而r不明白。我该如何保护这个分隔符?
1) readLines/gsub 对 R 上的 SO 的问题应该包括一个完整的可验证示例。如果没有这样的,我们在最后的注释中提供我们自己的。代码可能需要根据实际数据进行修改。首先使用 readLines
逐行读取数据并删除所有双引号。然后使用 read.csv
重新阅读它。
L <- gsub('"', '', readLines("hugo.dat"))
DF <- read.csv(text = L)
DF
给予:
a b c d
1 1 2 3 4
2 13 14 15 16
2) pipe/sed 另一种可能是单行:
read.csv(pipe("sed -e 's/\"//g' hugo.dat"))
在 Windows 上,确保您安装了 Rtools 并且 C:\Rtools\bin 在您的 Windows PATH 中(假设默认的 Rtools 安装目录)。尽管这对我直接 Windows 和 Linux 使用 bash 都有效,但您可能需要根据您使用的 shell 稍微修改它,因为 shell 的差异 shells 处理转义和引用。
备注
Lines <- 'a","b","c","d
1","2","3","4
13","14","15","16'
cat(Lines, "\n", file = "hugo.dat")
使用 @G.Grothendieck 的 示例 文件,我们可以添加缺少的引号,并读取为 CSV:
read.csv(textConnection(paste0('"', readLines("hugo.dat"), '"')))
# a b c d
# 1 1 2 3 4
# 2 13 14 15 16
我有问题。
我需要在 R 中导入数据,但分隔符是 ","
。
不只是一个逗号,而是一个被两个引号包围的逗号。 但是如果我把它作为分隔符,我有命令:
"DownloadFormat"="","".
而r不明白。我该如何保护这个分隔符?
1) readLines/gsub 对 R 上的 SO 的问题应该包括一个完整的可验证示例。如果没有这样的,我们在最后的注释中提供我们自己的。代码可能需要根据实际数据进行修改。首先使用 readLines
逐行读取数据并删除所有双引号。然后使用 read.csv
重新阅读它。
L <- gsub('"', '', readLines("hugo.dat"))
DF <- read.csv(text = L)
DF
给予:
a b c d
1 1 2 3 4
2 13 14 15 16
2) pipe/sed 另一种可能是单行:
read.csv(pipe("sed -e 's/\"//g' hugo.dat"))
在 Windows 上,确保您安装了 Rtools 并且 C:\Rtools\bin 在您的 Windows PATH 中(假设默认的 Rtools 安装目录)。尽管这对我直接 Windows 和 Linux 使用 bash 都有效,但您可能需要根据您使用的 shell 稍微修改它,因为 shell 的差异 shells 处理转义和引用。
备注
Lines <- 'a","b","c","d
1","2","3","4
13","14","15","16'
cat(Lines, "\n", file = "hugo.dat")
使用 @G.Grothendieck 的 示例
read.csv(textConnection(paste0('"', readLines("hugo.dat"), '"')))
# a b c d
# 1 1 2 3 4
# 2 13 14 15 16