Nice, thx. Which manual do you use ? an introduction to R ? Or something 
special ?

matt


On 29.04.2010, at 15:25, David Winsemius wrote:

> 
> On Apr 29, 2010, at 9:03 AM, Bunny, lautloscrew.com wrote:
> 
>> Sorry for that offlist post, did not mean to do it intentionally. just hit 
>> the wrong button. Unfortunately this disadvantage is not written next to $ 
>> in the manual.
> 
> Hmmm. Not my manual:
> 
> "Both [[ and $ select a single element of the list. The main difference is 
> that $ does not allow computed indices, whereas [[does."
> 
> 
> It also says that the correct equivalent using extraction operators of "$" 
> would be:
> 
> x$name  ==  x[["name", exact = FALSE]]
> -- 
> David.
>> 
>> 
>>> 
>>> On Apr 29, 2010, at 2:34 AM, Bunny, lautloscrew.com wrote:
>>> 
>>>> David,
>>>> 
>>>> With your help i finally got it. THX!
>>>> sorry for handing out some ugly names.
>>>> Reason being: it´s a german dataset with german variable names. With those 
>>>> german names you are always sure you dont use a forbidden
>>>> name. I just did not want to hit one of those by accident when changing 
>>>> these names for the mailing list. columna is just the latin term for 
>>>> column :) . Anyway here´s what worked
>>>> 
>>>> note: I just tried to use some more "real" names here.
>>>>            
>>>> recode_items = function(dataframe,question_number,medium=3){
>>>>            
>>>>            #note column names of the initial data.frame are like 
>>>> Question1,Question2 etc. Using [,1] would not be very practical since      
>>>>        # the df contains some other data too. Indexing by names seemed to 
>>>> most comfortable way so far.
>>>>            question<-paste("Question",question_number,sep="")
>>>>            # needed indexing here that understands characters, that´s why 
>>>> going with [,question_number] did not work.
>>>>            dataframe[question][dataframe[question]==3]=0
>>> 
>>> This would be more typical:
>>> 
>>> dataframe[dataframe[question]==3, question] <- 0
>>> 
>>>>            
>>>>            
>>>>            return(dataframe)
>>>>    
>>>>    }
>>>> 
>>>> recode_items(mydataframe,question_number,3)
>>>> # this call uses the dataframe that contains the answers of survey 
>>>> participants. Question number is an argument that selects the question 
>>>> from the dataframe that should be recoded. In surveys some weighting 
>>>> schemes only respect extreme answers, which is why the medium answer is 
>>>> recoded to zero. Since it depends on the item scale what medium actually 
>>>> is, I need it to be an argument of my function.
>>>> 
>>>>> Did you want a further logical test with that "=1" or some sort of 
>>>>> assignment???
>>>> 
>>>> So yes, it´s an assignment.
>>>> 
>>>>>> Moral: Generally better to use "[" indexing.
>>>> 
>>>> That´s what really made my day (and it´s only 9.30 a.m. here ) . Are there 
>>>> exceptions to rule?
>>> 
>>> Not that I know of.
>>> 
>>>> I just worked a lot with the $ in the past.
>>> 
>>> "$colname" is just syntactic sugar for either "["colname"]" or "[ 
>>> ,"colname"]" and it has the disadvantage that colname is not evaluated.
>>> 
>>> 
>>>> 
>>>> thx
>>>> 
>>>> matt
>>>> 
>>>>    
>>>> 
>>>> 
>>>> On 29.04.2010, at 00:56, David Winsemius wrote:
>>>> 
>>>>> 
>>>>> On Apr 28, 2010, at 5:45 PM, David Winsemius wrote:
>>>>> 
>>>>>> 
>>>>>> On Apr 28, 2010, at 5:31 PM, Bunny, lautloscrew.com wrote:
>>>>>> 
>>>>>>> Dear all,
>>>>>>> 
>>>>>>> i have a problem with processing dataframes within a function using the 
>>>>>>> "$".
>>>>>>> Here´s my code:
>>>>>>> 
>>>>>>> 
>>>>>>> recode_items = function(dataframe,number,medium=2){
>>>>>>>         
>>>>>>>         # this works
>>>>>>>         q<-paste("columna",number,sep="")
>>>>>> 
>>>>>> Do your really want q to equal "columna2" when "number" equals 2?
>>>>>> 
>>>>>>> 
>>>>>>>         # this does not work, particularly because "dataframe" is not 
>>>>>>> processed
>>>>>>>         # dataframe should be: givenframe$columnagivennumber
>>>>>>>         a=dataframe$q[dataframe$q==medium]=1
>>>>> 
>>>>> Did you want a further logical test with that "=1" or some sort of 
>>>>> assignment???
>>>>> 
>>>>>> 
>>>>>> a) Do you want to work on the column from dataframe ( horrible name for 
>>>>>> this purpose IMO) with the name "columna2"? If so, then start with
>>>>>> 
>>>>>> dataframe[ , q ]
>>>>>> 
>>>>>> .... the "q" will be evaluated in this form whereas it would not when 
>>>>>> used with "$".
>>>>>> 
>>>>>> b) (A guess in absence of explanation of a goal.) Now do you want all of 
>>>>>> the rows where that vector equals "medium"? If so ,then try this:
>>>>>> 
>>>>>> dataframe[ dataframe[ , q ]==2 , ]  # untested in the absence of data
>>>>> 
>>>>> Ooops. should have been:
>>>>> 
>>>>> dataframe[ dataframe[ , q ]==medium , ] #since both q and medium will be 
>>>>> evaluated.
>>>>> 
>>>>> 
>>>>>> 
>>>>>> Moral: Generally better to use "[" indexing.
>>>>>> 
>>>>>> -- 
>>>>>> David.
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>         return(a)       
>>>>>>> 
>>>>>>> }
>>>>>>> 
>>>>>>> 
>>>>>>> If I call this function, i´d like it to return my  dataframe.  The 
>>>>>>> problem appears to be somewhere around the $. I´m sure this not too 
>>>>>>> hard, but somehow i am stuck. I´ll keep searchin the manuals.
>>>>>>> Thx for any help in advance.
>>>>>>> 
>>>>>>> best
>>>>>>> 
>>>>>>> matt
>>>>>>>         [[alternative HTML version deleted]]
>>>>>>> 
>>>>>>> ______________________________________________
>>>>>>> R-help@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.
>>>>>> 
>>>>>> ______________________________________________
>>>>>> R-help@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.
>>>>> 
>>>> 
>>> 
>> 
> 
> David Winsemius, MD
> West Hartford, CT
> 

______________________________________________
R-help@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.

Reply via email to