Je suis nouveau à la programmation avec R.Créer une boucle for pour lire les données importantes en morceaux et créer de nouvelles colonnes
Je suis en train d'écrire une boucle dans laquelle se lit Mandrin de données séparément (comme la taille des données est de 20 Go avec 300 millions de lignes) et exécute un code pour créer des colonnes pour les dates et écrire chaque morceau comme un fichier csv dans chaque dossier. Ce qui suit est un procès qui a été suggéré par un autre membre. Cela fonctionne bien mais le seul problème est que je ne suis pas capable d'écrire chaque morceau dans la même boucle une fois qu'il effectue le processus.
index = 0
nrows = length(count.fields("RM.csv", sep = ","))
df = vector('list',ceiling(nrows/2))
col_names = colnames(read.csv('RM.csv', nrow=1, header = T))
end_found=FALSE
while(!end_found)
{
begin = 1000*index
end = min(nrows,begin+1000)
print(paste0("Reading rows ", begin+1 ," to ", end))
df[[index+1]] = fread('RM.csv',skip = begin, nrows =end-begin,
col.names = col_names)
index = index+1
if(end==nrows) end_found=TRUE
df = do.call(as.data.frame,df)
write.csv(df,file = paste0('test1',index,'.csv'))
}
données:
RM.csv:
Date
1 7/30/2017 19:16
2 7/30/2017 19:05
3 7/30/2017 19:03
4 7/30/2017 19:37
5 7/30/2017 18:36
6 7/30/2017 20:08
7 7/30/2017 19:00
8 7/30/2017 19:21
9 7/30/2017 17:01
désiré Rendement:
Date Month Year
1 7/30/2017 19:16 Jul-17 2017
2 7/30/2017 19:05 Jul-17 2017
3 7/30/2017 19:03 Jul-17 2017
4 7/30/2017 19:37 Jul-17 2017
5 7/30/2017 18:36 Jul-17 2017
6 7/30/2017 20:08 Jul-17 2017
7 7/30/2017 19:00 Jul-17 2017
8 7/30/2017 19:21 Jul-17 2017
9 7/30/2017 17:01 Jul-17 2017
Pouvez-vous décrire la sortie attendue? C'est un peu difficile à visualiser sans savoir à quoi ressemble le 'RM.csv'. En outre, c'est une mauvaise idée de faire une boucle et de lire un gros fichier d'entrée à plusieurs reprises. –
Savez-vous que vous pouvez ajouter des données aux fichiers. Lisez la page d'aide de 'write.table'. –
@Adam Quek J'ai mis à jour ma question. Donc disons que j'extrais un morceau de 9 lignes avec Date en utilisant cette boucle que deux autres colonnes telles que Mois et Année à créer pour ce même morceau et il devrait écrire un fichier csv dans le même répertoire. Plus tard, en utilisant un script batch ou MySQL, je vais ajouter ces fichiers. – user3301082