[R] read complicated file

William Simpson william.a.simpson at gmail.com
Thu Nov 15 12:09:46 CET 2007


Dear R experts,

I have been given data files in the following configuration and have
been puzzling about how to read them in. First I will give a snippet
of the beginning of file:

Data File: W
Para File: GABOR_0.gor	v 10.6,
Date     : 29/10/2007
Time     : 13:33
3.00
5.000
Noise SD    (deg):
15.000
1	-5.321	-5.321
2	-5.321	-3.991
3	-5.321	-2.661
4	-5.321	-1.330
5	-5.321	0.000
6	-5.321	1.330
7	-5.321	2.661
8	-5.321	3.991
9	-5.321	5.321
10	-3.991	-5.321
11	-3.991	-3.991
12	-3.991	-2.661
13	-3.991	-1.330
14	-3.991	0.000
15	-3.991	1.330
16	-3.991	2.661
17	-3.991	3.991
18	-3.991	5.321
19	-2.661	-5.321
20	-2.661	-3.991
21	-2.661	-2.661
22	-2.661	-1.330
23	-2.661	0.000
24	-2.661	1.330
25	-2.661	2.661
26	-2.661	3.991
27	-2.661	5.321
28	-1.330	-5.321
29	-1.330	-3.991
30	-1.330	-2.661
31	-1.330	-1.330
32	-1.330	0.000
33	-1.330	1.330
34	-1.330	2.661
35	-1.330	3.991
36	-1.330	5.321
37	0.000	-5.321
38	0.000	-3.991
39	0.000	-2.661
40	0.000	-1.330
41	0.000	0.000
42	0.000	1.330
43	0.000	2.661
44	0.000	3.991
45	0.000	5.321
46	1.330	-5.321
47	1.330	-3.991
48	1.330	-2.661
49	1.330	-1.330
50	1.330	0.000
51	1.330	1.330
52	1.330	2.661
53	1.330	3.991
54	1.330	5.321
55	2.661	-5.321
56	2.661	-3.991
57	2.661	-2.661
58	2.661	-1.330
59	2.661	0.000
60	2.661	1.330
61	2.661	2.661
62	2.661	3.991
63	2.661	5.321
64	3.991	-5.321
65	3.991	-3.991
66	3.991	-2.661
67	3.991	-1.330
68	3.991	0.000
69	3.991	1.330
70	3.991	2.661
71	3.991	3.991
72	3.991	5.321
73	5.321	-5.321
74	5.321	-3.991
75	5.321	-2.661
76	5.321	-1.330
77	5.321	0.000
78	5.321	1.330
79	5.321	2.661
80	5.321	3.991
81	5.321	5.321
END
1
5.000
15.000
118	-101	-84	56	72	157	-158	77	21	-238	-171	-257	-34	78	-228	-122	328	144	23	-168	159	106	-60	330	-139	33	-22	215	95	-89	-201	199	364	-70	352	-25	-108	-100	23	105	-42	106	164	123	289	77	50	16	-132	51	140	105	229	135	-171	75	83	-165	133	-131	-8	-132	149	165	60	31	-305	336	-16	73	-10	212	65	12	193	180	-82	137	7	-146	249
59	-180	-73	-278	-124	-22	107	164	73	160	-136	-37	119	-10	100	-4	0	182	152	35	256	70	148	-9	-4	0	49	128	-44	21	36	143	-114	-59	-110	7	-40	-80	-70	99	27	-27	184	293	257	-83	44	101	65	-68	-167	158	94	-39	130	59	-349	34	47	-108	70	141	55	138	-20	-83	81	-15	74	-107	140	-280	107	-325	83	125	-64	200	-122	123	-280
22
2
5.000
15.000
93	313	312	-113	230	160	-13	-42	145	-31	184	-287	-92	5	48	-62	5	110	-58	215	73	-171	-15	219	-20	94	-37	-13	-198	175	-179	12	-47	27	186	-180	30	0	-25	-91	164	117	-155	188	149	-28	24	5	20	-31	52	-78	45	-133	-63	-77	75	-183	130	-119	-47	-8	-40	64	209	166	48	-65	-244	111	110	-106	-248	-21	-173	2	-38	111	30	-174	257
59	-180	-73	-278	-124	-22	107	164	73	160	-136	-37	119	-10	100	-4	0	182	152	35	256	70	148	-9	-4	0	49	128	-44	21	36	143	-114	-59	-110	7	-40	-80	-70	99	27	-27	184	293	257	-83	44	101	65	-68	-167	158	94	-39	130	59	-349	34	47	-108	70	141	55	138	-20	-83	81	-15	74	-107	140	-280	107	-325	83	125	-64	200	-122	123	-280
21
...

The first bit up to "END" can be skipped. That's the first 90 lines.

Then I need to do something like this:
while data still exist in the file
{
skip 3 lines
scan 81 values into temp
scan 82nd value, which is 11, 12, 21, 22. Depending on value, temp is
added to one of these vars
}

The data are written in clumps.
Each clump has 3 lines with info I don't need.
Then it has 81 values which are the actual data I want to read into
some variable "temp"
Then the 82nd value tells me which of 4 variables to add temp onto.

Any tips on how to approach this using scan() greatly appreciated. I
know I can use skip as an argument to scan.

Thanks very much for any help!

Bill



More information about the R-help mailing list