Dla ogólnych przykładów tego są takie jak tos:
W tym konkretnym przykładzie tylko importować to
tmp = Import["http://en.wikipedia.org/wiki/Unemployment_by_country", "Data"]
Czyszczenie go jest dość proste z tego importu.Stół jest 3 kolumny tak wyodrębnić go z resztą rzeczy:
tmp1 = Cases[tmp, {_, _?NumberQ, _}, \[Infinity]]
Będziesz prawdopodobnie chcesz usunąć kwadratowych referencje wspornik (??):
tmp1[[All, 3]] = Flatten[If[StringQ[#],
StringCases[#, x__ ~~ Whitespace ~~ "[" ~~ __ :> x], #] & /@ tmp1[[All, 3]]]
Grid[tmp1, Frame -> All]
Uwaga również można dodać nagłówek z powrotem, jeśli chcesz go w tabeli, która prawdopodobnie zrobić
Grid[Join[{{"Country/Region", "Unemployment rate (%)",
"Source/date of information"}}, tmp1], Frame -> All]
puryści mogą wyrazić sprzeciw wobec ostatniego etapu, ale jeśli są skrobanie dane generalnie po prostu chcesz otrzymać pracę i każdy strona jest perspektywą dla każdego przypadku. Dzięki temu ręczna inspekcja i elastyczność zapewniają najszybszy ogólny wynik.
Edit
jeśli chciał flagi można również uzyskać je od CountryData
. Konieczne jest dalsze oczyszczanie, w przeciwnym razie wystąpi wiele błędów. Oczyszczenie obejmuje usunięcie odniesienia do "suwerennego kraju" w nawiasie. na przykład "Guam (Stany Zjednoczone)" -> "Gaum".
tmp2 = Flatten[
If[StringMatchQ[#, __ ~~ "(" ~~ __],
StringCases[#,
z__ ~~ Shortest["(" ~~ __ ~~ ")" ~~ EndOfString] :>
[email protected]], StringTrim[#]] & /@ tmp1[[All, 1]]]
Spowoduje to wyświetlenie niektórych wyników, których nie rozpoznaje CountryData
.
flags = CountryData[#, "Flag"] & /@ tmp2;
Cases[flags, _CountryData]
6 zagra z 190. Usuń te nie wykorzystuje wyjście:
flags = If[Head[#] === CountryData, {""}, {#}] & /@ flags; (*much faster than rule replacement*)
tmp2 = Join[flags, tmp1, 2];
Grid[tmp2, Frame -> All]
pamiętać, że ta zajmuje trochę czasu, aby uczynić.
Można oczywiście styl dla Grid
dowolnie za pomocą Grid
opcje, a także zmiana rozmiaru obrazów w razie potrzeby.
IMO, jeśli używasz wersji 8, JSON jest drogą do zrobienia. Istnieje mnóstwo API w środowisku naturalnym (zazwyczaj zawiesia XML lub JSON na swój sposób). Nie polecałbym zabijania czasu zgrywania danych o bezrobociu z Wiki. Znajdź główne źródło tego, co Cię interesuje, a prawdopodobnie będzie mieć interfejs API. Jeśli chcesz tylko szybko zgrać coś, możesz także spróbować połączyć komórki w Excelu --- wtedy możesz zaimportować do MMA. (Ignoruj to wszystko, jeśli chcesz po prostu dobrze się bawić i się uczyć, w takim przypadku spróbujmy!): D – telefunkenvf14