Hi mdvaan,
Not the best solution, but it should get you started:
lapply(g, function(l){
n <- names(l)
res <- lapply(1:length(n), function(ii){
rr <- l[[n[ii]]]
rn <- rownames(rr)
cn <- colnames(rr)
i <- rn %in% n[[ii]]
rr <- rr[!i, i]
rr2 <- matrix(rr, ncol = 1)
rownames(rr2) <- rn[!i]
colnames(rr2) <- cn[i]
rr2
})
res
})
HTH,
Jorge
*
*
*
*
On Thu, Aug 25, 2011 at 11:24 AM, mdvaan <> wrote:
> Hi,
>
> I have produced a list g and I would like to reduce the amount of
> information contained in each object in g.
> For each matrix I would like to keep the values where the column name
> equals
> g[year][[1]][[x]] and the row names equals g[year][[1]][[-x]]. So in
> g$`1999`$`8029`, year = 1999 and x = 8029. I have been experimenting with
> the subset function, but have been unsuccesful. Thanks for your help!
>
> The result for g$`1999`$`8029` should be:
>
> $`1999`$`8029`
> B
> B 8029
> 8026 1
> 8027 1
> 8028 1
>
> The result for g$`1999`$`8028` should be:
>
> $`1999`$`8028`
> B
> B 8028
> 8029 1
>
>
> The result for g$`1999`$`8027` should be:
>
> $`1999`$`8027`
> B
> B 8027
> 8025 1
> 8026 2
> 8029 1
>
>
> Example:
>
> DF = data.frame(read.table(textConnection(" A B C
> 80 8025 1995
> 80 8026 1995
> 80 8029 1995
> 81 8026 1996
> 82 8025 1997
> 82 8026 1997
> 83 8025 1997
> 83 8027 1997
> 90 8026 1998
> 90 8027 1998
> 90 8029 1998
> 84 8026 1999
> 84 8027 1999
> 85 8028 1999
> 85 8029 1999"),head=TRUE,stringsAsFactors=FALSE))
>
> e <- function(y) crossprod(table(DF[DF$C %in% y, 1:2]))
> years <- sort(unique(DF$C))
> f <- as.data.frame(embed(years, 3))
> g<-lapply(split(f, f[, 1]), e)
> years<-names(g)
> for (t in seq(years))
> {
> year=as.character(years[t])
> g[[year]]<-sapply(colnames(g[[year]]), function(var)
> g[[year]][g[[year]][,var]>0, g[[year]][var,]>0])
> }
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/Selections-in-lists-tp3768562p3768562.html
> Sent from the R help mailing list archive at Nabble.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.