gpt4 book ai didi

r - fread 的填充选项

转载 作者:行者123 更新时间:2023-12-03 23:44:13 25 4
gpt4 key购买 nike

假设我有这个 txt 文件:

"AA",3,3,3,3
"CC","ad",2,2,2,2,2
"ZZ",2
"AA",3,3,3,3
"CC","ad",2,2,2,2,2

read.csv我可以:
> read.csv("linktofile.txt", fill=T, header=F)
V1 V2 V3 V4 V5 V6 V7
1 AA 3 3 3 3 NA NA
2 CC ad 2 2 2 2 2
3 ZZ 2 NA NA NA NA NA
4 AA 3 3 3 3 NA NA
5 CC ad 2 2 2 2 2

然而 fread
> library(data.table)

> fread("linktofile.txt")
V1 V2 V3 V4 V5 V6 V7
1: CC ad 2 2 2 2 2

我可以用 fread 得到同样的结果吗? ?

最佳答案

重大更新

看起来是fread的开发计划更改和 fread现在获得了 fill争论。

使用本答案末尾的相同示例数据,我得到的是:

library(data.table)
packageVersion("data.table")
# [1] ‘1.9.7’
fread(x, fill = TRUE)
# V1 V2 V3 V4 V5 V6 V7
# 1: AA 3 3 3 3 NA NA
# 2: CC ad 2 2 2 2 2
# 3: ZZ 2 NA NA NA NA NA
# 4: AA 3 3 3 3 NA NA
# 5: CC ad 2 2 2 2 2

安装“data.table”的开发版本:
install.packages("data.table", 
repos = "https://Rdatatable.github.io/data.table",
type = "source")

原答案

这不能回答您关于 fread 的问题:@Matt 已经解决了这个问题。

但是,它确实为您提供了一种替代方案,应该可以为您提供比基础 R 更好的速度改进 read.csv .

不像 fread ,您将不得不通过向它们提供有关您尝试读取的数据的一些信息来帮助它们。

您可以使用 input.file来自“iotools”的功能。通过指定列类型,您可以告诉格式化程序函数需要多少列。
library(iotools)
input.file(x, formatter = dstrsplit, sep = ",",
col_types = rep("character", max(count.fields(x, ","))))

样本数据
x <- tempfile()
myvec <- c('"AA",3,3,3,3', '"CC","ad",2,2,2,2,2', '"ZZ",2', '"AA",3,3,3,3', '"CC","ad",2,2,2,2,2')
cat(myvec, file = x, sep = "\n")

## Uncomment for bigger sample data
## cat(rep(myvec, 200000), file = x, sep = "\n")

关于r - fread 的填充选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18597488/

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