[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] how to force org-mode to interpret number as string
From: |
Stefan Huchler |
Subject: |
Re: [O] how to force org-mode to interpret number as string |
Date: |
Fri, 07 Mar 2014 15:10:16 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Eric Schulte <address@hidden> writes:
> I suggested that you remove "." from your numbers. You could also wrap
> your numbers in "s.
> #+name: example
> | "100.00000000" |
> #+begin_src emacs-lisp :var example=example
> (caar example)
> #+end_src
>
> #+RESULTS:
> : 100.00000000
>
thank you and sorry for my inpatiance.
That is a very helpful and constructive post.
And basicly that was one thing I searched that you can mark somehow
numbers as strings.
To rename the numbers that would work of course I just want a option
that works in any case, its not supposed to be a one-thing solution for
one problem, I want it to be usable for every data.
As a general serial mail tool, so renaming the numbers is no real good
solution, and the point on the thausends is pretty common here in
germany.
I dont need to use calc functionality in any way on this table, so I
don´t need proper number recognition besided if I need string its stupid
to first convert it to a number from string to convert it then back.
Especialy with all the "if (is number...)" block, and your mapping would
then also not work, because I have to check then every entry by 2 loops
like I did.
So to complete your solution, is there a way to wrap "" around of all
values in a table (or only on numbers)?
something like:
#tblfm: $3 = "$3" (or for all columns?)
Then I think I am satisfied ;)
>
> I would argue that the list of lists representation is indeed more
> commonly useful than converting a table to a list of dictionaries keyed
> by the header row. Maybe you will find the following helpful.
>
> #+TBLNAME: jobs
> | jobname | city | salary | email |
> | Taxi-driver | New York City | 500.000 | address@hidden |
> | Butcher | Peking | 5.000 | address@hidden |
>
> #+name: table-w-headers-to-list-of-key-value
> #+begin_src emacs-lisp :var data='()
> (let ((keys (car data))
> (vals (cdr data)))
> (mapcar (lambda (row) (map 'list #'cons keys row)) vals))
> #+end_src
>
> Example usage, pull the email from each value.
> #+begin_src emacs-lisp :var data=table-w-headers-to-list-of-key-value(jobs)
> (mapcar (lambda (row) (cdr (assoc "email" row))) data)
> #+end_src
>
> #+RESULTS:
> | address@hidden | address@hidden |
thanx yes the problem is that I am not so used to the lambda construct,
and I did not want to learn that and a new language at the same time,
but yes I should get used to map methods and lambda.
It´s a bit shorter yes. thanks!