标签: fread

fread如何真正起作用?

声明fread如下:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
Run Code Online (Sandbox Code Playgroud)

问题是:两个这样的调用的阅读性能是否存在差异fread:

char a[1000];
Run Code Online (Sandbox Code Playgroud)
  1. fread(a, 1, 1000, stdin);
  2. fread(a, 1000, 1, stdin);

它会读取1000字节一次,每次?

c fread

72
推荐指数
4
解决办法
7万
查看次数

fgets()和fread() - 有什么区别?

我理解和之间的差异fgets(),fgetss()但我没有区别fgets()fread(),有人可以澄清这个问题吗?哪一个更快?谢谢!

php smtp stream fgets fread

32
推荐指数
1
解决办法
3万
查看次数

使用data.table快速读取和组合多个文件(带有fread)

我有几个不同的txt文件具有相同的结构.现在我想用fread将它们读入R,然后将它们组合成一个更大的数据集.

## First put all file names into a list 
library(data.table)
all.files <- list.files(path = "C:/Users",pattern = ".txt")

## Read data using fread
readdata <- function(fn){
    dt_temp <- fread(fn, sep=",")
    keycols <- c("ID", "date")
    setkeyv(dt_temp,keycols)  # Notice there's a "v" after setkey with multiple keys
    return(dt_temp)

}
# then using 
mylist <- lapply(all.files, readdata)
mydata <- do.call('rbind',mylist)
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但速度不理想.每个txt文件有1M个观察值和12个字段.

如果我用它fread来读取单个文件,那就快了.但是使用apply,那么速度非常慢,显然比逐个读取文件需要花费很多时间.我想知道这里出了什么问题,速度提升有什么改进吗?

我试图llplyplyr包中,有是没有太大的速度上涨.

此外,是否有任何语法data.table实现垂直连接喜欢rbindunionin sql

谢谢.

r fread data.table

31
推荐指数
1
解决办法
1万
查看次数

PHP技术查询APNs反馈服务器

有人可以澄清APN(Apple推送通知)所要求的内容吗?

文档说它会在连接完成后立即开始发送.这是否意味着我不fread()对其进行操作?

这是我当前尝试阅读它的代码.我没有放入fread()循环,因为我不知道什么响应表明"没有更多的记录可读",我不想在我的服务器上进行无限循环.

<?php
$apnsCert = 'HOHRO-prod.pem';

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($streamContext, 'ssl', 'verify_peer', false);

$apns = stream_socket_client('ssl://feedback.push.apple.com:2196', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);

echo 'error=' . $error;
echo 'errorString=' . $errorString;


$result = fread($apns, 38);
echo 'result=' . $result;


fclose($apns);
?>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到的只是一个空回复.没有错误,所以它是连接.

我不知道null回复是否意味着没有数据,或者我的方法fread()是错误的.

谢谢

php stream fread push-notification apple-push-notifications

30
推荐指数
2
解决办法
3万
查看次数

在fread中使用colClasses

我不知道如何使用colClasses选项中选择特定的列fread.我试过用NULL几种方法但没有用.这是一个最小的例子.我只想要第1列和第3列.

dt <- data.table(a=1:5,b=6:10,c=10:14)
write.csv(dt,"dt.csv",row.names=F)

dt <- fread("dt.csv",colClasses=?)

packageVersion("data.table")
[1] ‘1.8.10’

getRversion()
[1] ‘3.0.1’
Run Code Online (Sandbox Code Playgroud)

导入的数据集应如下所示:

   a  c
1: 1 10
2: 2 11
3: 3 12
4: 4 13
5: 5 14
Run Code Online (Sandbox Code Playgroud)

r fread data.table

28
推荐指数
1
解决办法
2万
查看次数

使用fread导入csv时出现'嵌入nul in string'错误

我有一个大文件(3.5G),我正在尝试导入使用data.table::fread.

它最初是从作为文本打开并保存为CSV的rpt文件创建的.

这适用于较小的文件(相同类型的数据 - 相同列和所有.这个只是更长的时间范围和更广泛的范围).

当我试着跑

mydata <- fread("mycsv.csv")
Run Code Online (Sandbox Code Playgroud)

我收到错误:

fread中的错误("mycsv.csv"):在字符串中嵌入nul:'y\0e\0a\0r\0'

这是什么意思?

r fread data.table

28
推荐指数
3
解决办法
2万
查看次数

使用包data.table中的fread一次读取块

我正在尝试使用fread包中的函数输入一个大的制表符分隔文件(大约2GB)data.table.但是,因为它太大了,所以它并不完全适合内存.我试图通过使用skipnrow参数来输入它,例如:

chunk.size = 1e6
done = FALSE
chunk = 1
while(!done)
{
    temp = fread("myfile.txt",skip=(chunk-1)*chunk.size,nrow=chunk.size-1)
    #do something to temp
    chunk = chunk + 1
    if(nrow(temp)<2) done = TRUE
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我一次读取100万行,对它们进行计算,然后得到下一百万行等.这段代码的问题是在检索fread到每个块后,需要开始扫描文件从一开始就经过每次循环迭代后,skip增加了一百万.结果,在每个块之后,fread实际到达下一个块需要更长和更长时间,这使得效率非常低.

有没有办法告诉你fread暂停每一个说100万行,然后继续阅读从那一点开始而不必重新开始?任何解决方案,还是应该是新功能请求?

r fread data.table

26
推荐指数
4
解决办法
5546
查看次数

你如何将多个.txt文件读入R?

我正在使用R来显示一些所有数据都是.txt格式的数据.目录中有几百个文件,我想一次性将它们全部加载到一个表中.

有帮助吗?

编辑:

列出文件不是问题.但是我无法从列表转到内容.我从这里尝试了一些代码,但是我得到了这个部分的错误:

all.the.data <- lapply( all.the.files,  txt  , header=TRUE)
Run Code Online (Sandbox Code Playgroud)

 Error in match.fun(FUN) : object 'txt' not found
Run Code Online (Sandbox Code Playgroud)

任何能够澄清这个问题的代码片段都将不胜感激.

r fread lapply read.table readr

23
推荐指数
5
解决办法
4万
查看次数

什么是C/C++中的"字节"

例如,这是fread的参考:

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
Run Code Online (Sandbox Code Playgroud)

读取一个count元素数组,每个元素的大小为"size bytes"...那么有多少BITS会读取一个fread(&x, 1, 1, stream)?八个还是CHAR_BIT

c byte char fread language-lawyer

19
推荐指数
2
解决办法
817
查看次数

R中data.table包中fread速度背后的原因

我对大型数据文件中的fread函数速度感到惊讶,data.table但它如何能够如此快速地读取?fread和之间的基本实现差异是read.csv什么?

performance r fread data.table

19
推荐指数
1
解决办法
9522
查看次数