Problem
Ich recherchiere eine ganze Reihe von Unternehmen und möchte wissen, was ihre Websites sind. Ein guter Indikator dafür, dass ein Unternehmen erworben wurde, ist, dass entweder seine Website fehlt oder die Compay-Website auf ein Unternehmen mit einem anderen Namen verweist.
Ich möchte also eine Spalte mit Firmennamen verwenden, diese bei einer Websuche einreichen und die wahrscheinlichste Website wieder aufrufen. Ich bin ok mit unvollkommenen Reuslt, aber es ist viel besser als jedes manuell zu suchen.
Lösung
Ich beginne mit einer Spalte namens "Companies" in meiner JMP-Tabelle. Ich erhalte die Werte als Liste und durchlaufe dann die Liste mit einer Suche. Ich fange das Ergebnis von r in einer neuen Liste ein, und nachdem die Suche abgeschlossen ist, verwende ich Werte setzen, um die Werte einer leeren Spalte in der ursprünglichen Tabelle hinzuzufügen.
Möglicherweise ist dies in JMP alles möglich, aber ich wusste nicht, wie. Ich weiß jedoch, wie man läuft
Ich habe mit ihrem Beispiel angefangen, was ein paar Pakete erfordert: beautifulsoup4 und google (dh pip install google). Dieser Code gibt ein Suchergebnis zurück.
(This is Python)
try:
from google import search
except ImportError:
print("No module named 'google' found")
# to search
query = "SAS Institute inc"
for j in search(query, tld="co.in", num=1, stop=1, pause=2):
print(j)
Also habe ich den Python-Code in eine kleine JSL gepackt, um die Liste zu finden und die Suche und die Ergebnisse zu durchlaufen.
names default to here(1);
outlist={}; clist=:Company<<GET values=""></GET>
Der einzige echte Trick, den Sie im Auge behalten müssen, ist, dass der gesamte Text des Python-Codes in der Funktion Substitute enthalten ist. Im Ersatz wird "xyzxyz" entfernt und durch den Spaltenwert ersetzt. In zukünftigen Versionen von JMP (wie v14) wird es einige bessere Möglichkeiten geben, mit Variablen umzugehen und mit Python zu arbeiten, aber hier schreibe ich eine Textdatei, den Python-Code auf die Festplatte und dann das Python-Programm.
Das Programm kommt mit einem Wert zurück, den ich einer Liste hinzufüge. Ein Firmenname geht rein und ein Artikel kommt heraus. Da dies ein 1: 1 ist, kann ich die Liste einfach in eine Spalte setzen und alles sollte sich in einer Reihe befinden. Für einige meiner Ergebnisse war Arbeit nötig, aber die meisten waren perfekt.
Diskussion
Ich bin fast zu 100% sicher, dass es bessere Lösungen dafür gibt, aber es dauerte ungefähr 15 Minuten, bis ich alles zusammengefügt hatte, und nachdem ich 10 Minuten gelaufen war, hatte ich eine Liste, die zu 99% fertig war. Also, es gibt etwas Besseres als das, was ich habe, bitte poste es bitte. Die Flexibilität, zwischen JMP und anderen Paketen hin und her zu wechseln und andere Tools mit JMP zu verwenden, macht meine Arbeit viel einfacher. In meinem Beispiel hatte ich ungefähr 600 Namen, die ich durcharbeiten musste. Das Copy-Paste-Langeweile könnte stundenlang Droge haben, aber damit war ich fertig und hatte immer noch Zeit, in weniger Zeit zu bloggen, als ich es manuell gemacht hätte. Plus morgen, wenn ich die zweite Hälfte der Liste bekomme. Ich kann das Skript einfach noch einmal ausführen.
@Craige_Hales , Vielen Dank,... (oops !, ist das Laufprogramm ein Copy-Paste aus Ihrem Post?)
Schöne RunProgram Demo auch!