Re: Data Conversion
- To: mathgroup at smc.vnet.net
- Subject: [mg38034] Re: Data Conversion
- From: Selwyn Hollis <hollisse at mail.armstrong.edu>
- Date: Tue, 26 Nov 2002 00:50:21 -0500 (EST)
- References: <arsilf$eed$1@smc.vnet.net>
- Reply-to: selwynh at earthlink.net
- Sender: owner-wri-mathgroup at wolfram.com
John,
Here's one approach. I'm assuming that you're starting out with strings.
data1 = {"123-456-7899", "John Smith", "2223334444"};
{l1, l2, l3} = Characters /@ data1;
data2 = Flatten[{
StringJoin[DeleteCases[#1,"-"]]&/@ Partition[l1, 4],
StringJoin[#1]&@ l2[[Range@@ Prepend[Flatten[Position[l2," "]]-1, 1]]],
StringJoin[#1]&@ l2[[Range@@ Append[Flatten[Position[l2," "]]+1,
Length[l2]]]],
StringJoin[#1]&/@ {l3[[{1,2,3}]], l3[[{4,5,6}]], l3[[{7,8,9,10}]]}}]
{"123", "456", "7899", "John", "Smith", "222", "333", "4444"}
data3 = StringJoin[data3 = StringJoin[data2[[Range[1,5]]]],
StringJoin[Table["0", {24 - Length[Characters[data3]]}]]]
"1234567899JohnSmith00000"
---
Selwyn Hollis
Moranresearch at aol.com wrote:
>I have the following data of the following form.
>
>{123-456-7899, John Smith,2223334444}
>
>How can I convert this to
>{123,456,7899, John,Smith,222,333,4444}
>and then to
>
>{1234567899johnsmith00000)
>
>1. The "-" are removed
>2. John Smith is concerted to lower case
>3. The space between John and Smith is removed (ie john and smith is
>concatenated)
>4. 123454567899johnsmith is padded right so the the total number of
>characters is 24.
>Thank you.
>John
>
>