Hello Dr. Venables and Joshua, Thank you for your replies to my post. Dr. Venables's solution is particularly elegant. I looked at the the help file for scan() and it seems pretty clear how this works. Two arguments (file= and what=) are submitted to the function. These are specified in order and so do not specifically need to be named. The what= argument can take the form of a list as it does here. Naming 6 variables in the list and initializing them to either 0 or "" tells R how many variables it's going to read, their names, and their type. So presumably when R encounters the first of 12 additional values in each row, it assumes that it should continually recycle the same six variables that were specified until it reaches the end of the row. And so it keeps on reading. Is this correct? Thanks, Paul
--- On Fri, 7/30/10, [email protected] <[email protected]> wrote: From: [email protected] <[email protected]> Subject: RE: [R] R Equivalent of SAS Datastep Line-Hold (@@) Specifier? To: [email protected], [email protected] Cc: [email protected] Received: Friday, July 30, 2010, 2:44 AM There is a much simpler way. con <- textConnection(" A 1 101 M 55 5 A 1 104 F 27 0 A 1 106 M 31 35 A 1 107 F 44 21 A 1 109 M 47 15 A 1 111 F 69 70 A 1 112 F 31 10 A 1 114 F 50 0 A 1 116 M 32 20 A 1 118 F 39 25 A 1 119 F 54 0 A 1 121 M 70 38 A 1 123 F 57 55 A 1 124 M 37 18 A 1 126 F 41 0 A 1 128 F 48 8 A 1 131 F 35 0 A 1 134 F 28 0 A 1 135 M 27 40 A 1 138 F 42 12 A 2 202 M 58 68 A 2 203 M 42 22 A 2 206 M 26 30 A 2 207 F 36 0 A 2 210 F 35 25 A 2 211 M 51 0 A 2 214 M 51 60 A 2 216 F 42 15 A 2 217 F 50 50 A 2 219 F 41 35 A 2 222 F 59 0 A 2 223 F 38 10 A 2 225 F 32 0 A 2 226 F 28 16 A 2 229 M 42 48 A 2 231 F 51 45 A 2 234 F 26 90 A 2 235 M 42 0 A 3 301 M 38 28 A 3 302 M 41 20 A 3 304 M 65 75 A 3 306 F 64 0 A 3 307 F 30 30 A 3 309 F 64 5 A 3 311 M 39 80 A 3 314 F 57 85 A 3 315 M 61 12 A 3 318 F 45 95 A 3 319 F 34 26 A 3 321 M 39 10 A 3 324 M 27 0 A 3 325 F 56 35 B 1 102 M 19 68 B 1 103 F 51 10 B 1 105 M 45 20 B 1 108 F 44 65 B 1 110 M 32 25 B 1 113 M 61 75 B 1 115 M 45 83 B 1 117 F 21 0 B 1 120 F 19 55 B 1 122 F 38 0 B 1 125 M 37 72 B 1 127 F 53 40 B 1 129 M 48 0 B 1 130 F 36 80 B 1 132 M 49 20 B 1 133 F 28 0 B 1 136 F 34 45 B 1 137 F 57 95 B 1 139 F 47 40 B 1 140 M 29 0 B 2 201 F 63 10 B 2 204 M 36 49 B 2 205 M 36 16 B 2 208 F 48 12 B 2 209 F 42 40 B 2 212 F 32 0 B 2 213 M 24 88 B 2 215 M 40 59 B 2 218 M 31 24 B 2 220 F 45 72 B 2 221 F 27 55 B 2 224 M 56 70 B 2 227 F 41 0 B 2 228 F 24 65 B 2 230 M 44 30 B 2 232 M 37 32 B 2 233 F 33 0 B 3 303 M 40 26 B 3 305 M 46 15 B 3 308 M 59 82 B 3 310 F 62 38 B 3 312 M 52 40 B 3 313 F 33 40 B 3 316 M 62 87 B 3 317 M 52 60 B 3 320 F 32 2 B 3 322 F 43 0 B 3 323 F 51 35 ") Example_Trial <- data.frame(scan(con, list(Trt = "", Centre = 0, Patient = 0, Sex = "", Age = 0, Score = 0))) ## > head(Example_Trial) Trt Centre Patient Sex Age Score 1 A 1 101 M 55 5 2 A 1 104 F 27 0 3 A 1 106 M 31 35 4 A 1 107 F 44 21 5 A 1 109 M 47 15 6 A 1 111 F 69 70 Rather than use a textConnection, you would probably just use a file. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Joshua Wiley Sent: Friday, 30 July 2010 4:59 PM To: Paul Miller Cc: [email protected] Subject: Re: [R] R Equivalent of SAS Datastep Line-Hold (@@) Specifier? This gets you to a matrix, though it is messy and you would still have to convert some of the columns from character to numeric, but maybe it will give you an idea. matrix(data = unlist(strsplit(x = readLines(textConnection(" A 1 101 M 55 5 A 1 104 F 27 0 A 1 106 M 31 35 A 1 107 F 44 21 A 1 109 M 47 15 A 1 111 F 69 70 A 1 112 F 31 10 A 1 114 F 50 0 A 1 116 M 32 20 A 1 118 F 39 25 A 1 119 F 54 0 A 1 121 M 70 38 A 1 123 F 57 55 A 1 124 M 37 18 A 1 126 F 41 0 A 1 128 F 48 8 A 1 131 F 35 0 A 1 134 F 28 0 A 1 135 M 27 40 A 1 138 F 42 12 A 2 202 M 58 68 A 2 203 M 42 22 A 2 206 M 26 30 A 2 207 F 36 0 A 2 210 F 35 25 A 2 211 M 51 0 A 2 214 M 51 60 A 2 216 F 42 15 A 2 217 F 50 50 A 2 219 F 41 35 A 2 222 F 59 0 A 2 223 F 38 10 A 2 225 F 32 0 A 2 226 F 28 16 A 2 229 M 42 48 A 2 231 F 51 45 A 2 234 F 26 90 A 2 235 M 42 0 A 3 301 M 38 28 A 3 302 M 41 20 A 3 304 M 65 75 A 3 306 F 64 0 A 3 307 F 30 30 A 3 309 F 64 5 A 3 311 M 39 80 A 3 314 F 57 85 A 3 315 M 61 12 A 3 318 F 45 95 A 3 319 F 34 26 A 3 321 M 39 10 A 3 324 M 27 0 A 3 325 F 56 35 B 1 102 M 19 68 B 1 103 F 51 10 B 1 105 M 45 20 B 1 108 F 44 65 B 1 110 M 32 25 B 1 113 M 61 75 B 1 115 M 45 83 B 1 117 F 21 0 B 1 120 F 19 55 B 1 122 F 38 0 B 1 125 M 37 72 B 1 127 F 53 40 B 1 129 M 48 0 B 1 130 F 36 80 B 1 132 M 49 20 B 1 133 F 28 0 B 1 136 F 34 45 B 1 137 F 57 95 B 1 139 F 47 40 B 1 140 M 29 0 B 2 201 F 63 10 B 2 204 M 36 49 B 2 205 M 36 16 B 2 208 F 48 12 B 2 209 F 42 40 B 2 212 F 32 0 B 2 213 M 24 88 B 2 215 M 40 59 B 2 218 M 31 24 B 2 220 F 45 72 B 2 221 F 27 55 B 2 224 M 56 70 B 2 227 F 41 0 B 2 228 F 24 65 B 2 230 M 44 30 B 2 232 M 37 32 B 2 233 F 33 0 B 3 303 M 40 26 B 3 305 M 46 15 B 3 308 M 59 82 B 3 310 F 62 38 B 3 312 M 52 40 B 3 313 F 33 40 B 3 316 M 62 87 B 3 317 M 52 60 B 3 320 F 32 2 B 3 322 F 43 0 B 3 323 F 51 35 ")), "[[:space:]]+")), byrow = TRUE, ncol =6) closeAllConnections() On Thu, Jul 29, 2010 at 3:54 PM, Paul Miller <[email protected]> wrote: > Hello Everyone, > > Below is some SAS code that uses a "line hold specifier" to read multiple > observations from each of several input lines of data. There are 3 patients > per line in the in-stream data. > > Is there a way in R to read this kind of data? I've looked in my books and > online but haven't found anything > > Thanks, > > Paul > > > DATA EXAMP.TRIAL; > INPUT TRT $ CENTER PAT SEX $ AGE SCORE @@; > DATALINES; > A 1 101 M 55 5 A 1 104 F 27 0 A 1 106 M 31 35 > A 1 107 F 44 21 A 1 109 M 47 15 A 1 111 F 69 70 > A 1 112 F 31 10 A 1 114 F 50 0 A 1 116 M 32 20 > A 1 118 F 39 25 A 1 119 F 54 0 A 1 121 M 70 38 > A 1 123 F 57 55 A 1 124 M 37 18 A 1 126 F 41 0 > A 1 128 F 48 8 A 1 131 F 35 0 A 1 134 F 28 0 > A 1 135 M 27 40 A 1 138 F 42 12 A 2 202 M 58 68 > A 2 203 M 42 22 A 2 206 M 26 30 A 2 207 F 36 0 > A 2 210 F 35 25 A 2 211 M 51 0 A 2 214 M 51 60 > A 2 216 F 42 15 A 2 217 F 50 50 A 2 219 F 41 35 > A 2 222 F 59 0 A 2 223 F 38 10 A 2 225 F 32 0 > A 2 226 F 28 16 A 2 229 M 42 48 A 2 231 F 51 45 > A 2 234 F 26 90 A 2 235 M 42 0 A 3 301 M 38 28 > A 3 302 M 41 20 A 3 304 M 65 75 A 3 306 F 64 0 > A 3 307 F 30 30 A 3 309 F 64 5 A 3 311 M 39 80 > A 3 314 F 57 85 A 3 315 M 61 12 A 3 318 F 45 95 > A 3 319 F 34 26 A 3 321 M 39 10 A 3 324 M 27 0 > A 3 325 F 56 35 B 1 102 M 19 68 B 1 103 F 51 10 > B 1 105 M 45 20 B 1 108 F 44 65 B 1 110 M 32 25 > B 1 113 M 61 75 B 1 115 M 45 83 B 1 117 F 21 0 > B 1 120 F 19 55 B 1 122 F 38 0 B 1 125 M 37 72 > B 1 127 F 53 40 B 1 129 M 48 0 B 1 130 F 36 80 > B 1 132 M 49 20 B 1 133 F 28 0 B 1 136 F 34 45 > B 1 137 F 57 95 B 1 139 F 47 40 B 1 140 M 29 0 > B 2 201 F 63 10 B 2 204 M 36 49 B 2 205 M 36 16 > B 2 208 F 48 12 B 2 209 F 42 40 B 2 212 F 32 0 > B 2 213 M 24 88 B 2 215 M 40 59 B 2 218 M 31 24 > B 2 220 F 45 72 B 2 221 F 27 55 B 2 224 M 56 70 > B 2 227 F 41 0 B 2 228 F 24 65 B 2 230 M 44 30 > B 2 232 M 37 32 B 2 233 F 33 0 B 3 303 M 40 26 > B 3 305 M 46 15 B 3 308 M 59 82 B 3 310 F 62 38 > B 3 312 M 52 40 B 3 313 F 33 40 B 3 316 M 62 87 > B 3 317 M 52 60 B 3 320 F 32 2 B 3 322 F 43 0 > B 3 323 F 51 35 > ; > > > [[alternative HTML version deleted]] > > > ______________________________________________ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > > -- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/ ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]]
______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

