Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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:将大字符行拆分为多个片段_R_Split_Character - Fatal编程技术网

R:将大字符行拆分为多个片段

R:将大字符行拆分为多个片段,r,split,character,R,Split,Character,对于包含99150000行的大型数据帧,以下代码将数据my_df拆分为1000行的数据块并写入磁盘 lapply(seq(1, nrow(my_df), by = 1000), function(i) write.table(my_df[i:i+1000-1,] , file = paste0('path_to_logal_dir/data'

对于包含99150000行的大型数据帧,以下代码将数据
my_df
拆分为1000行的数据块并写入磁盘

lapply(seq(1, nrow(my_df), by = 1000),
       function(i) write.table(my_df[i:i+1000-1,]
                               , file = paste0('path_to_logal_dir/data'
                                               , i, '-', i+1000-1, '.csv')
                               ,row.names = F,col.names = F,quote = F)
)
现在,我有相同的字符格式数据(99150000个元素),示例数据如下:

[1] "1979_1,532,40,7.7,12.9,116.9,12.9,85,2,2.001,4,25,55,5.3,55,85,7.7,85,145,7.5,145,265,5.0"
[2] "1979_2,532,40,7.7,12.9,116.9,12.9,85,2,2.001,4,25,55,5.3,55,85,7.7,85,145,7.5"
[3] "1979_3,532,40,7.7,12.9,116.9,12.9,85,2,2.001,4,25,55,5.3,55,85,7.7,85"
...
[99150000] ...

我如何才能实现上述相同的任务,即将字符格式数据拆分为块(包含1000行的文件)?

这是一个仅使用base R的解决方案。您可以使用apply family或purrr包轻松地对其进行概括。首先,我创建了一些虚假数据

伪造数据[1]“A”“B”“C”“D”“E”“F”“G”“H”
您希望将角色向量分成1000行的组。为了简单起见,我把这个向量分成两行

组长度[1]“A”“B”
#> 
#> $`2`
#>[1]“C”“D”
#> 
#> $`3`
#>[1]“E”“F”
#> 
#> $`4`
#>[1]“G”“H”
并创建for循环以将每个子组保存到文件中

for (i in seq_len(length(fake_data) / group_length)) {
  table_data <- data.frame(x = splitted_groups[[i]])
  write.csv(table_data, file = paste0("data", i, ".csv"), row.names = FALSE)
}
用于(序列中的i(长度(假数据)/组长度)){
表2.1.1数据