[R] Vectorizing a task
David L Carlson
dcarlson at tamu.edu
Tue Apr 14 22:03:39 CEST 2015
It is not vectorized, but it is simple:
EXPANDED <- unlist(mapply(":", START, END))
-------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77840-4352
-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Dennis Fisher
Sent: Tuesday, April 14, 2015 2:36 PM
To: r-help at stat.math.ethz.ch
Subject: [R] Vectorizing a task
R 3.1.3
OS X
Colleagues
I have data of this sort:
START <- c(1, 2, 3, 4, 8, 14, 15, 118, 118, 119, 202, 202, 203, 204)
END <- c(1, 2, 3, 6, 13, 14, 117, 118, 118, 201, 202, 202, 203, 204)
I would like to create a vector that looks like this:
START.to.END <- c(1:1,2:2,3:3,4:6,8:13,14:14,15:117,118:118,118:118,119:201,202:202,202:202,203:203,204:204)
i.e., each pair of entries is link with “:”, then these are concatenated.
Ultimately, this will be expanded into:
EXPANDED <- c(1L, 2L, 3L, 4L, 5L, 6L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L,
29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L,
55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L,
81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L, 89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L, 101L, 102L, 103L, 104L, 105L,
106L, 107L, 108L, 109L, 110L, 111L, 112L, 113L, 114L, 115L, 116L, 117L, 118L, 118L, 119L, 120L, 121L, 122L, 123L, 124L, 125L, 126L,
127L, 128L, 129L, 130L, 131L, 132L, 133L, 134L, 135L, 136L, 137L, 138L, 139L, 140L, 141L, 142L, 143L, 144L, 145L, 146L, 147L, 148L,
149L, 150L, 151L, 152L, 153L, 154L, 155L, 156L, 157L, 158L, 159L, 160L, 161L, 162L, 163L, 164L, 165L, 166L, 167L, 168L, 169L, 170L,
171L, 172L, 173L, 174L, 175L, 176L, 177L, 178L, 179L, 180L, 181L, 182L, 183L, 184L, 185L, 186L, 187L, 188L, 189L, 190L, 191L, 192L,
193L, 194L, 195L, 196L, 197L, 198L, 199L, 200L, 201L, 202L, 202L, 203L, 204L)
The final step will be to find which values are missing from the sequence:
setdiff(1:max(EXPANDED), EXPANDED)
The command:
paste0("c(", paste(paste(ALLSTART, ALLEND, sep=":"), collapse=","), ")")
creates the text for START.to.END, but I can’t figure out how to evaluate that expression. I could build the vector step-by-step but that seems quite inefficient.
Any suggestions?
Dennis
Dennis Fisher MD
P < (The "P Less Than" Company)
Phone: 1-866-PLessThan (1-866-753-7784)
Fax: 1-866-PLessThan (1-866-753-7784)
www.PLessThan.com
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.
More information about the R-help
mailing list