Message-ID: <3.0.6.32.20050330093240.007c6b70@pop.gmx.net>
Date: 2005-03-30T07:32:40Z
From: Heinz Tuechler
Subject: From FAQ 7.21 to a command like apply(sapply(list(f1,f2,f3),is.na),2,sum)
In-Reply-To: <Pine.A41.4.61b.0503291606590.222566@homer04.u.washington.e du>
At 16:13 29.03.2005 -0800, Thomas Lumley wrote:
>On Wed, 30 Mar 2005, Heinz Tuechler wrote:
>
>> Dear all,
>>
>> Last December there was a thread regarding the famous FAQ 7.21 "How can I
>> turn a string into a variable?" and asking what people want to do with
>> these strings.
>> My, certainly trivial application would be as follows:
>> Assume I have a data.frame containing besides others also the columns f1,
>> f2, ..., fn and I want to create a command like:
>> apply(sapply(list(f1,f2,f3),is.na),2,sum)
>> or
>> summary(cbind(f1,f2,f3))
>>
>> Can I start from paste('f',1:3,sep='') to arrive at the abovementioned
>> command?
>
>No parse,as.name or other complications needed. It's all just indexing.
>Suppose your data frame is called dd
>
>fs<-paste('f',1:3,sep='')
>apply(sapply(dd[,fs],is.na),2,sum)
>summary(dd[,fs])
>
> -thomas
>
>
Thank you, Thomas, for your answer. I was curious if there was a simple way
to do this without referring to the data.frame, so that the resulting
command would correspond in its effect exactly to the abovementioned examples.
It's not urgent, but I will try further.
Many thanks
Heinz