Transposer un très grand tableau de donnéesSalut,
J'ai un très gros fichier de données (plus de 20 millions de lignes, 10 colonnes) que je dois transposer. Malheureusement, jmp n'est pas capable d'exécuter un fichier aussi volumineux rapidement ou efficacement. J'ai trouvé que jmp est capable de manipuler très facilement des données au format texte. J'ai essayé toutes les options de sauvegarde/ouverture en tant que .txt mais sans succès.
Quelqu'un peut-il aider à transposer ce tableau soit au format txt, soit dans un tableau de données (liste, tableau, etc.) ?
J'ai besoin de l'exemple de tableau suivant pour ressembler à la sortie ci-dessous, sans utiliser la fonction "transposer" car cela ne fonctionnera pas pour plus d'un million de lignes : ''
Tableau de données :
col1 col2
Al
s w
4 j
t sdf
t
o
p
Sortie souhaitée (soit sous forme de fichier txt, soit sous forme de tableau avec seulement 1 colonne et 2 lignes) :
col1, a,s,4,t,t,o,p
col2,l,w,j,sdf
S'il te plaît et merci 
Re : Comment configurer Python pour JMP 14 ?Lorsque vous spécifiez l'emplacement de python tel que
Python Init(Path("/Library/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib"),
Utiliser la version Python ("3.7")
);
Vous indiquez qu'il s'agit de la version spécifique de Python que vous souhaitez utiliser, située à l'endroit que vous avez spécifié. Si vous appelez Ptyhon Init() sans arguments, ou avec moins d'arguments tels que Python Init(Use Python Version(“3.7”) ), JMP effectue davantage de recherches pour tenter de localiser un Python approprié. Sur Mac, vous devrez probablement toujours spécifier au moins la version car Apple fournit Python 2.7 avec le système d'exploitation. Nous continuons à travailler sur l'amélioration de la prise en charge de Python dans JMP.
Re : Comment configurer Python pour JMP 14 ?@Paul_Nelson , en s'appuyant sur le dernier message de GM1 :
exécutant ce script :
Clear Log();
Names Default To Here( 1 );
Python Init(Path("/Library/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib"),
Use Python Version("3.7")
);
Python Submit("\[
print("Done importing modules")
]\");
Python Term();
donne la sortie suivante dans le journal :

Exécutez ce script JSL :
Clear Log();
Names Default To Here( 1 );
Python Init(Path("/Library/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib"),
Use Python Version("3.7")
);
Python Submit("\[
import numpy as np
print("Done importing modules")
]\");
Python Term();
donne la sortie suivante au journal :

Étant donné le code de sortie réussi, je pense que cette erreur n'est pas très claire. JMP/JSL semble ne pas savoir où trouver les modules à importer ?? Toute aide est grandement appréciée
Re : Transposition d'un très grand tableau de donnéesC'est super! Merci Craige pour son excellent soutien !
Re : Transposition d'un très grand tableau de donnéesBeaucoup de choix. Peut-être quelque chose comme ça pour post-traiter la chaîne.
regex("a,b,c,,,,,,," ",*$", "", GLOBALREPLACE)
/* :
"abc"
Voici quelques informations sur la manipulation des personnages :
http://www.jmp.com/support/help/Work_with_Character_Functions.shtml
https://community.jmp.com/t5/Uncharted/JSL-Character-String-Functions/ba-p/21323
https://community.jmp.com/t5/Uncharted/Regex/ba-p/21008
https://community.jmp.com/t5/Uncharted/Pattern-Matching/ba-p/21005
https://community.jmp.com/t5/Uncharted/Back-Reference/ba-p/21267
Re : Transposition d'un très grand tableau de donnéesTrès cool merci. Bien qu'utile, je souhaitais particulièrement obtenir uniquement la valeur de chaîne dans la cellule. Malheureusement, la chaîne comprend des séparations par virgule supplémentaires pour les cellules vides.
c'est à dire. étant donné qu'il y a 2 colonnes, la 1ère colonne a 10 lignes et la 2ème colonne n'a que des données pour 5 lignes. Lorsque j'implémente la chaîne de concaté que vous avez mentionnée ci-dessus, j'obtiens la valeur de la chaîne pour le deuxième col sous la forme astring = "a,s,r,w,d,,,,,,"
Je suis particulièrement intéressé à obtenir uniquement "a, s, r, w, d", à l'exclusion des séparations par virgule supplémentaires. Des directions que vous pouvez m'indiquer? J'apprécierais beaucoup.
Merci,
Shiv
Re : Transposition d'un très grand tableau de donnéesOui, http://www.jmp.com/support/help/Accessing_Data_Values.shtml#790448 a un exemple comme celui-ci:
dt:âge[10] = 20 ; // définit la valeur de l'âge dans la ligne 10 à 20
Vous voudrez peut-être créer un prototype de tableau à 2 lignes avec les noms de colonne (et les types de données !) dont vous avez besoin et utiliser le "get script" du menu du triangle rouge. Vous pouvez ensuite coller ce script dans votre propre code. Dans l'exemple ci-dessus, [10] correspond à la ligne 10 ; vous pouvez utiliser deux affectations pour [1] et [2]. Le 20 correspond à une colonne numérique ; votre colonne est un caractère si la variable astring va y être stockée.
Re : Transposition d'un très grand tableau de donnéesSuper merci pour la réponse rapide ! Plus facile que je ne le pensais. 
Quoi qu'il en soit, je peux attribuer une cellule particulière dans un tableau à cette astring?
de sorte que j'ai une table qui a (en prenant l'exemple original que j'ai utilisé) 1 colonne et 2 lignes ressemblant à ce qui suit :
Colonne1
Ligne 1 : a, s, 4, t, t, o, p
Row2: l,l,j,sdfRe : Transposition d'un très grand tableau de donnéesJe pense que vous avez des colonnes non numériques, vous ne pouvez donc pas utiliser de matrice. Vous pouvez définir votre valeur de chaîne comme une concaténation d'éléments dans une liste et vous pouvez obtenir une liste à partir d'une colonne de caractères avec le message <
alist = dt:a<<GETVALUES></GETVALUES>
N éléments (liste) = 21000000 ;
Longueur (chaîne) = 207635028 ;
Gauche(astring, 100) = "1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529,576,625,676,729,784," ;
JMP a une limite de 2 milliards de caractères pour une chaîne. Vous approchez peut-être.