Skip to content

improvement

1 message · Sebastian Kruk

#
Hi, if i just want a vector filled with names which has length(index) > 0.

For example if

nombreC <- c("Juan", "Carlos", "Ana", "Mar?a")
nombreL <- c("Juan Campo", "Carlos Gallardo", "Ana Iglesias", "Mar?a
Bacaldi", "Juan Grondona", "Dario Grandineti", "Jaime Acosta",
"Lourdes Serrano")

I would like to obtain a matrix called vaca  with two column, name and
index, name is nombreC's element and index is the position in nombreL,
I don't want info about nombreC which no appear in nombreL. And I
would like to count how many cases appear.

For example vaca:

    name       index
1  Juan        1
2  Juan        5
3  Carlos      2
4  Ana         3
5  Mar?a       4

Code is it:
vaca <- do.call(rbind,lapply(noquote(nombreC),function(.name) {
	index <- grep(.name,noquote(nombreL))
      index <- if( length(index) > 0) index else 0
	data.frame(name=.name,index=index)
}))

vaca <- vaca[vaca$index>0,]
cuenta <- nrow(vaca)

Thanks,

Sebastia?n


2010/5/11  <markleeds at verizon.net>: