Supposons que j'ai le texte suivant:Lecture de textes en utilisant une fonction comme sprintf R
" 7.7597 4.7389 3.0058 0.0013"
Je sais que c'est le format:
" %9.4f %9.4f %9.4f %9.4f"
Je veux extraire les variables hors de celui-ci. Je veux quelque chose comme fonction sprintf
/gettextf
mais ne fait l'inverse:
??????(" %9.4f %9.4f %9.4f %9.4f", v1, v2, v3, v4)
Comment puis-je faire cela? (Sans chargement des paquets, si possible)
La méthode peu fiable que j'utilise est en ce moment:
temp <- as.numeric(unlist(strsplit(" 7.7597 4.7389 3.0058 0.0013"," ")))
temp[!is.na(temp)]
Que diriez-vous 'read.table (text =" 7,7597 4,7389 3.0058 0.0013 ")'? Pouvez-vous penser à des situations où cela pourrait échouer? – konvas
@konvas Beaucoup mieux que ce que je fais actuellement. Cela fonctionnera pour ma situation actuelle. Mais je cherche une solution générale, comme celle qui peut lire trois lettres dans ceci: 'read.table (text = sprintf ("% 1s-% 1s-% 1s "," a "," c "," e ")) 'séparément. – HBat
Ou 'read.fwf' pour lire des fichiers de" largeur fixe "(si les valeurs sont jamais exécutées ensemble). R les stockera tous comme un type "numérique" générique de toute façon. – MrFlick