J'ai une table de données avec une colonne qui est un vecteur de caractères appelé nutcode
. Les éléments de cette colonne ont des codages différents. Certains sont unknown
(l'étalon Mac); certains sont UTF-8
. Les éléments UTF-8
incluent μ. Un exemple est "vit_a_rae_μg". Ce codage est probablement là parce que les données originales ont été lues à partir d'une base de données Access en utilisant la ligne de code suivante (note de codage choix.r les problèmes de codage affectent le comportement de diffusion d une table de données
con <- odbcConnect("nutrientDataSR28",DBMSencoding="Windows-1252")
Quand je convertir ma table de données large avec nutcode
fournissant les noms de colonnes, les éléments UTF-8 ne sont pas convertis en colonnes et il n'y a pas de message d'avertissement J'utilise data.table v1.9.7 sur un mac (version R est Microsoft Open R ver 3.3.1
Voici le code a ce comportement
formula.wide <- paste("usda_code + IMPACT_code + FdGrp_Cd + Long_Desc + Ref_Desc + Refuse ~ nutCode")
dt.wide <- data.table::dcast(
data = dt,
formula = formula.wide,
value.var = "Nutr_Val")
I avoir au moins une solution, que je vais ajouter comme réponse. Mais je voulais aussi signaler cela aux développeurs de data.table.