[R] factor manipulation: edgelist to a matrix?

Veslot Jacques jacques.veslot at cemagref.fr
Thu Dec 20 08:53:41 CET 2007


do.call(rbind,lapply(split(as.character(z[,2]),z[,1]), 
function(x) c(x, rep(NA, max(table(z[,1]))-length(x)))))

Jacques VESLOT

CEMAGREF - UR Hydrobiologie

Route de Cézanne - CS 40061      
13182 AIX-EN-PROVENCE Cedex 5, France

Tél      + 0033   04 42 66 99 76
email   jacques.veslot at cemagref.fr  

>-----Message d'origine-----
>De : r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] De
>la part de Christopher Marcum
>Envoyé : jeudi 20 décembre 2007 08:33
>À : r-help at stat.math.ethz.ch
>Objet : [R] factor manipulation: edgelist to a matrix?
>
>Hello All,
>
>I have had considerable bad luck with attempting the following with for
>loops. Here is the problem:
>
>
>#	Suppose we have a data.frame with the following data, which can be
>considered a type of edgelist (for those with networks backgrounds):
>#
>#       V1	V2
>#	1	A
>#	1	A
>#	1	B
>#	2	A
>#	3	C
>#	3	A
>#	3	C
>#	3	B
>#
>#	I want the output of the function to produce a matrix, such that #each
>factor of V1 is a row, and each corresponding value at position k of V2 is
>the i,j^th element of the new matrix, with missing values otherwise. The
>desired output should be:
>#	[,1]	[,2]	[,3]	[,4]
># [1,]	A	A	B	NA
># [2,]	A	NA	NA	NA
># [3,]	C	A	C	B
>
>I have explored the reshape package as well as the network package in this
>pursuit, with no luck.
>
>Thanks,
>Chris Marcum
>UCI Sociology
>
>______________________________________________
>R-help at 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.



More information about the R-help mailing list