Mathematica - разделить элементы строки на столбцы? - PullRequest
1 голос
/ 02 июля 2011

Я создаю закодированный вывод, который представляет собой список строк, которые выглядят как списки.Есть ли способ превратить их в реальные списки, чтобы я мог выбирать элементы и форматировать их в столбцы?Или способ выделить символы в строках и поместить их в столбцы?

  Button[
    "Run",
    {afit = Input["Please Enter ID#", deleteme] ;
    ClearAll[dat],
    dat := TraumaEncoding@afit;
    ClearAll[funcel],
    funcel[p_String] :=
     Which[StringMatchQ[
      p, ("*no new ones*" | "*no new marks*" | 
      "*old wounds healing*"), 
      IgnoreCase -> True], "0",
      StringMatchQ[p, ("*abrasion*"), IgnoreCase -> True], "{1,0}",
      StringMatchQ[p, ("*lacer*"), IgnoreCase -> True], "{1,1}",
      StringMatchQ[p, ("*punct*") | ("*pct*"), 
      IgnoreCase -> True], "{1,2}",
      StringMatchQ[p, ("*amput*"), IgnoreCase -> True], "{1,4}",
      StringMatchQ[
       p, ("*wound*" | "*injur*" | "*trauma*" | 
       "*swollen*" | "*swell*"), IgnoreCase -> True], 1, True, 0];
    funcel[___] := 0;
    ClearAll[func],
    func[l_List] := 
     Which[MemberQ[Map[funcel, l], "0"], "0", 
      MemberQ[Map[funcel, l], "{1,4}"], "{1,4}", 
      MemberQ[Map[funcel, l], "{1,2}"], "{1,2}", 
      MemberQ[Map[funcel, l], "{1,1}"], "{1,1}", 
      MemberQ[Map[funcel, l], "1-0"], "1,0", MemberQ[Map[funcel, l], 1],
       1, True, 0];
    listo := Map[func, dat]},
  Background -> Yellow, Sequence @@ $ButtonOptions
  ]

Создает что-то вроде этого:

   {"{1,2}", "{1,2}", "0", "{1,2}", "0", "0", "0", "0", "0"}

Мне нужно превратить это в нечто более подобное, в идеалечто я могу экспортировать в файл Excel:

    Header  Header
      1       2
      1       2
      0
      1       2
      0
     etc.,

Ответы [ 2 ]

2 голосов
/ 02 июля 2011

Небольшое примечание: вам на самом деле не нужно Map ToExpression к списку, вместо этого вы можете Apply it

In[91]:= ToExpression@{"{1,2}","{1,2}","0","{1,2}","0","0","0","0","0"}
Out[91]= {{1,2},{1,2},0,{1,2},0,0,0,0,0}
1 голос
/ 02 июля 2011
ToExpression["{1,2}"]

==> {1,2}

или весь список:

data =
 Prepend[ToExpression /@ {"{1,2}", "{1,2}", "0", "{1,2}", "0", "0", 
    "0", "0", "0"}, {"header1", "header2"}]

(* ==> {{"header1", "header2"}, {1, 2}, {1, 2}, 0, {1 2}, 0, 0, 0, 0, 0}   *)

В формате таблицы:

enter image description here

Для экспорта:

Export["filename.csv", data]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...