Je veux écrire du code qui créera des colonnes séparées pour l'heure et les minutes dans chacun des 13 cadres de données qui contiennent une colonne nommée "DateTimeDur". Comme il est probable que j'aurai besoin d'effectuer d'autres opérations sur chacun de ces ensembles de données à l'avenir, je voudrais établir un bloc de code simple qui effectuera n'importe quelle opération sur chaque ensemble. Plus précisément, j'ai besoin d'une boucle for pour ajouter des colonnes à chaque ensemble.
Tout d'abord, j'ai mis tous mes ensembles de données dans dflist, puis j'ai créé une boucle for où le temps sous la forme "hh:mm:ss autres absurdités" produit une colonne pour les heures et une autre colonne pour les minutes. Cela fonctionne si je le fais sur n'importe quel ensemble de données, mais je n'arrive pas à le faire fonctionner avec une boucle for pour tous les ensembles de données dans dflist. Cela n'affiche aucune erreur - il ne parvient simplement pas à ajouter les colonnes "heure" et "minute" à chacun d'eux comme je m'y attendais...
dflist <- c(FAT1, FAT2, FAT3, FAT4, FAT5, FAT6, FAT7, FAT8, FAT9, FAT10, FAT11, FAT12, FAT13)
Temps <- Temps2 <- TempsMin <- vector("list", length(FAT1$RecNumber))
for(i in dflist){
Temps <- factor(i["TimeDateDura"])
Temps2 <- strptime(Temps, "%H:%M:%S")
TempsHr <- format(Temps2, "%H")
TempsMin <- format(Temps2, "%M")
i["heure"] <- TempsHr
i["min"] <- TempsMin
}
Un ensemble de données typique (FAT1, etc.) ressemble à ceci :
RecNumber Label Fat Lean FreeWater TotalWater TimeDateDura Accumulation Weight Comments
1 87001 1.47 11.19 0.05 9.46 09:31:02 Jan 30, 2018; 78; 1 0 NA
2 87002 1.46 11.39 0.07 10.07 09:33:10 Jan 30, 2018; 79; 1 0 NA
3 87003 1.13 10.43 0.15 9.23 09:35:21 Jan 30, 2018; 101; 1 0 NA