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

Gerrit Eichner Gerrit.Eichner at math.uni-giessen.de
Thu Jan 2 21:56:58 CET 2014


O-ha, sorry, Luca, I mixed up arguments: it shouldn't be "subset" but 
"select".

apply( subset( d2, select = V13:V239), 1, function( x) any( x != ""))

should work.

"Auf Wiederhören!" ;-)

  Regards  --  Gerrit


On Thu, 2 Jan 2014, Luca Meyer wrote:

> Hi Gerrit,
>
> Thank you for the suggestion. Unfortunatedly the line of code you suggest -
> i.e.
>
> apply( subset( d2, subset = V13:V239), 1, function( x) any( x != ""))
>
> returns the same error. Any other suggestion?
>
> Danke schôn und auf wiederhoren....
>
> Luca
>
>
>
>
>
> 2014/1/2 Gerrit Eichner <Gerrit.Eichner at math.uni-giessen.de>
>
>> Hello, Luca,
>>
>> also a happy new year!
>>
>> It's not quite clear to me what you want to do, but note first that the
>> ":"-operator is a short-cut for seq() with by = 1 (look at ?seq), and that
>> it usually (!) does not work on columns of data frames. Exception: when
>> used for the argument subset of function subset().
>>
>> Second, you seem to want to check in each row of d2 if there is any entry
>> different from "", right?
>>
>> So, does
>>
>>  apply( subset( d2, subset = V13:V239), 1, function( x) any( x != ""))
>>>
>>
>> what you want?
>>
>>  Hth  --  Gerrit
>>
>> On Thu, 2 Jan 2014, 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?
>>>
>>> Thank you in advance,
>>>
>>> Luca
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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