gpt4 book ai didi

r - 将 txt 文件读入 R 时遇到问题,列由 || 分隔

转载 作者:行者123 更新时间:2023-12-04 05:47:26 24 4
gpt4 key购买 nike

我在尝试读取由 561366 行和 15 列组成的 .txt 文件时遇到问题。第一行看起来像这样:

  70000||Consumer A||23||DN||70000||10038782||1||SI||2||NO||0||N/A||0||N/A||1
90000||Consumer B||23||DN||90000||15402432||1||SI||2||NO||0||N/A||0||N/A||1
.
.
.

我用于读取文件的代码是:
  Datos <- read.table("C:/Users/hernandezn/Desktop/DataSets/INACTIVOS.txt", 
header=FALSE, sep="|", na.strings="N/A", dec=".", strip.white=TRUE)

如您所见,我的列由 "||" 分隔。 ,但我不能在 R 命令中使用它 read.table作为 sep选项。所以,我用过 sep="|"并且必须为此付出代价(现在我有 29 列)。

问题是我只从文件中的 561366 行中获取了 241116 行。另一方面,我尝试通过替换 "||" 来读取这个文件。符号来自 ;并将其保存为 .xlsx 文件,我以这种方式获取所有行。

你能建议我解决这个问题的方法吗?会不会是内存问题?我在具有 2GB 内存 RAM 的计算机上运行 32 位 R 版本。

最佳答案

我认为 sep=字符长度必须为 1。所以你可以简单地调用一个外部命令(如 sedperl )来替换两个字符的 || ,或者在 R 中自己做。

这是一个概念证明,首先切换 ||, (由于 | 是一个元字符,我们需要对其进行转义,并且也需要对转义字符 \ 进行转义):

R> read.csv(textConnection(gsub("\\|\\|", ",", "70000||Consumer A||23||DN||70000||10038782||1||SI||2||NO||0||N/A||0||N/A||1\n90000||Consumer B||23||DN||90000||15402432||1||SI||2||NO||0||N/A||0||N/A||1")), header=FALSE)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
1 70000 Consumer A 23 DN 70000 10038782 1 SI 2 NO 0 N/A 0 N/A 1
2 90000 Consumer B 23 DN 90000 15402432 1 SI 2 NO 0 N/A 0 N/A 1
R>

或者在两行中更清晰:
R> txt <- "70000||Consumer A||23||DN||70000||10038782||1||SI||2||NO||0||N/A||0||N/A||1\n90000||Consumer B||23||DN||90000||15402432||1||SI||2||NO||0||N/A||0||N/A||1"
R> read.csv(textConnection(gsub("\\|\\|", ",", txt)), header=FALSE)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
1 70000 Consumer A 23 DN 70000 10038782 1 SI 2 NO 0 N/A 0 N/A 1
2 90000 Consumer B 23 DN 90000 15402432 1 SI 2 NO 0 N/A 0 N/A 1
R>

关于r - 将 txt 文件读入 R 时遇到问题,列由 || 分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10501644/

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