Skip to content

character comp

9 messages · Val, Rui Barradas, Erin Hodgess

Val
#
Hi  All,
In a given data frame I  want to compare character values of two columns.
My sample data looks like as follow,

mydataframe <- read.table( text='ID  var1 var2
  R1   AA  AAA
  R2   AAA AAA
  R3    A  AAAA
  R4   AA   A
  R5   A  AAA', header = TRUE, as.is = TRUE )

For each ID, I want  create the third column "dvar" as  difference
between var1 and var2
 Row1( R1)   the "dvar" value will be -1 and the complete  desired out
put looks like as follow.

 ID    var1 var2   dvar
 R1   AA    AAA    -1
 R2  AAA  AAA      0
 R3    A    AAAA    -3
 R4   AA       A        1
 R5    A     AAA      -2

How do i do this? Any help please?
Thank you
#
Will it always be A?s or will there be a mix please?
On Sat, Feb 9, 2019 at 11:06 AM Val <valkremk at gmail.com> wrote:

            
Val
#
Hi Erin,  Yes, it is always  A's.
On Sat, Feb 9, 2019 at 12:22 PM Erin Hodgess <erinm.hodgess at gmail.com> wrote:
#
Ok.  Try something like
nchar(mydataframe[,1])-nchar(mydataframe[,2])


On Sat, Feb 9, 2019 at 11:21 AM Erin Hodgess <erinm.hodgess at gmail.com>
wrote:
#
Hello,

The following will do it.

mydataframe$dvar <- c(sapply(mydataframe[-1], nchar) %*% c(1, -1))


Hope this helps,

Rui Barradas

?s 18:05 de 09/02/2019, Val escreveu:
#
Hello,

It should be

nchar(mydataframe[,2])-nchar(mydataframe[,3])


since the first column is ID.

Hope this helps,

Rui Barradas


?s 18:31 de 09/02/2019, Erin Hodgess escreveu:
#
Nice, Rui!  Thanks
On Sat, Feb 9, 2019 at 11:55 AM Rui Barradas <ruipbarradas at sapo.pt> wrote:

            
#
After correcting the typo I tested both and yours is over twice as fast 
as mine.

Rui Barradas

?s 19:08 de 09/02/2019, Erin Hodgess escreveu:
Val
#
Thank you Erin and Rui!
On Sat, Feb 9, 2019 at 1:08 PM Erin Hodgess <erinm.hodgess at gmail.com> wrote: