Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的大型.CSV导入和提取随机样本_R_Csv_Import_Statistics_Subsampling - Fatal编程技术网

从R中的大型.CSV导入和提取随机样本

从R中的大型.CSV导入和提取随机样本,r,csv,import,statistics,subsampling,R,Csv,Import,Statistics,Subsampling,我在R中做一些分析,需要处理一些大型数据集(10-20GB,存储在.csv中,并使用read.csv函数) 由于我还需要将大型.csv文件与其他数据帧合并和转换,因此我没有足够的计算能力或内存导入整个文件 我想知道是否有人知道如何导入csv的随机百分比 我见过一些例子,其中人们导入了整个文件,然后使用单独的函数创建另一个数据帧,该数据帧是原始文件的一个样本,但我希望它的强度稍低一些。我认为没有一个好的R工具可以随机读取文件(它可能是一个扩展名read.table或fread(data.table

我在R中做一些分析,需要处理一些大型数据集(10-20GB,存储在.csv中,并使用read.csv函数)

由于我还需要将大型.csv文件与其他数据帧合并和转换,因此我没有足够的计算能力或内存导入整个文件

我想知道是否有人知道如何导入csv的随机百分比


我见过一些例子,其中人们导入了整个文件,然后使用单独的函数创建另一个数据帧,该数据帧是原始文件的一个样本,但我希望它的强度稍低一些。

我认为没有一个好的R工具可以随机读取文件(它可能是一个扩展名
read.table
fread
(data.table包))

使用
perl
可以轻松完成此任务。例如,要以随机方式读取文件的1%,可以执行以下操作:

xx= system(paste("perl -ne 'print if (rand() < .01)'",big_file),intern=TRUE)

我认为你应该把你的数据放在数据库中。这可能很有用。我同时使用Mac(约塞米蒂)和PC(Windows 7)。一个选择可能是使用unix命令行工具,如
awk
,这里有一个很好的讨论:一旦你用
awk
采样,然后读入R.
运行命令“perl-ne”print if(rand()<0.04)“train.csv”的状态为255
read_partial_rand <- 
  function(big_file,percent){
    cmd <- paste0("perl -ne 'print if (rand() < ",percent,")'")
    cmd <- paste(cmd,big_file)
    system(cmd,intern=TRUE)
  }