On Jun 23, 2011, at 11:19 AM, Uwe Ligges wrote:
On 23.06.2011 16:39, Michael Pearmain wrote:
Hi All,
I've been given a data file of the form:
1: 3,4,5,6
2:1,2,3
43: 5,7,8,9,5
and i want to read this data in as a list to create the form:
(guessing final look)
my.list
[[1]]
[1] 3 4 5 6
[[2]]
[1] 1 2 3
[[43]]
[1] 5 7 8 9 5
I can get to a stage using scan:
scan("my.data", what = character(0), quiet = TRUE)
to load
[1] "1: 3,4,5,6"
[2] "2:1,2,3"
[3] "43: 5,7,8,9,5"
I don't understand why you want 40 empty list elements, but here is
what you asked for (not optimized, just hacked in few seconds):
temp <- strsplit(d, ":")
num <- as.numeric(sapply(temp, "[[", 1))
L <- vector(mode = "list", length = max(num))
for(i in seq_along(temp)){
L[[num[i]]] <- as.numeric(unlist(strsplit(temp[[i]][2], ",")))
}
L
I wondered about that too. Perhaps he would be satisfied with alpha
indexing:
d <- c( "1: 3,4,5,6", "2:1,2,3", "43: 5,7,8,9,5")
temp <- strsplit(d, ":")
num <- sapply(temp, "[[", 1)
L <- vector(mode = "list")
for(i in seq_along(temp)){
L[[num[i]]] <- as.numeric(unlist(strsplit(temp[[i]][2], ",")))
}
> L
$`1`
[1] 3 4 5 6
$`2`
[1] 1 2 3
$`43`
[1] 5 7 8 9 5
Uwe Ligges
but im not sure on how next to proceed to arrange this into a list
form, can
anyone offer some advise?
Thanks in advance
Mike
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org 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.