[R] How to verify char variables contain at least one value

Jim Lemon jim at bitwrit.com.au
Thu Jan 2 08:28:59 CET 2014


On 01/02/2014 05:17 PM, Luca Meyer wrote:
> Happy new year fellows,
>
> I am trying to do something I believe should be fairly straightforward but
> I cannot find my way out.
>
> My dataset d2 is 26 rows by 245 columns, exclusively char variables. I
> would like to check whether at least one column from V13 till V239 (they
> are in numerical sequence) has been filled in, so I try
>
> d2$check<- c(d2$V13:d2$V239)
>
> and/or
>
> d2$check<- paste(d2$V13:d2$V239,sep="")
>
> but I get (translated from Italian):
>
> Error in d2$V13:d2$V239 : argument NA/NaN
>
> I have tried nchar but the same error occurs. I have also tried to run the
> above functions on a smaller variable subset (V13, V14, V15, see below for
> details) just to double check in case some variable would erroneously be in
> another format, but the same occur.
>
>> d2$V13
>   [1] ""                ""                ""
> ""                ""                ""                "da -5.1% a -10%"
> ""
>   [9] ""                ""                ""
> ""                ""                ""                ""
> ""
> [17] ""                ""                ""
> ""                ""                ""                ""
> ""
> [25] ""                ""
>> d2$V14
>   [1] ""                 ""                 ""
> ""                 ""                 ""                 "da -10.1% a -15%"
> ""
>   [9] ""                 ""                 ""
> ""                 ""                 ""                 ""
> ""
> [17] ""                 ""                 ""
> ""                 ""                 ""                 ""
> ""
> [25] ""                 ""
>> d2$V15
>   [1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
> "" "" ""
>
> Can anyone suggest an alternative function for me to create a variable that
> checks whether there is at least one value for each of the 26 records I
> need to analyze?
>
Hi Luca,
Perhaps you are looking for something like this:

d2check<-unlist(apply(as.matrix(d2[,paste("V",13:239,sep="")]),1,nchar))
# to test for any non empty rows
any(d2check)

Jim




More information about the R-help mailing list