Oh wow, I guess I get it!
Thank you. It is pretty tricky but I saw that it works very fast.


On Wed, Jan 29, 2014 at 9:31 PM, Duncan Murdoch <murdoch.duncan@gmail.com>wrote:

> On 14-01-29 6:41 AM, Bill wrote:
>
>> Hi. I saw this example and I cannot begin to figure out how it works. Can
>> anyone give me an idea on this?
>>
>> n = 9e6
>> df = data.frame(values = rnorm(n),
>>                  ID = rep(LETTERS[1:3], each = n/3),
>>                  stringsAsFactors = FALSE)
>>
>>> head(df)
>>>
>>        values ID
>> 1 -0.7355823  A
>> 2 -0.4729925  A
>> 3 -0.7417259  A
>> 4  1.7633367  A
>> 5 -0.3006790  A
>> 6  0.6785947  A
>>
>>
>> The idea is to replace all occurrences of A by    'Text for A'.
>>
>> He does this:
>>
>> translator_vector = c(A = 'Text for A',
>>                        B = 'Text for B',
>>                        C = 'Text for C')
>>
>> and subset this vector using df$ID:
>>
>> dum_vectorized = translator_vector[df$ID]
>>
>> It works but I have no idea why.
>>
>
> He is indexing by name.  The translator_vector looks like this:
>
>            A            B            C
> "Text for A" "Text for B" "Text for C"
>
> The first element is named A, the second B, the third C.
>
> So translator_vector["A"] is the same as translator_vector[1].  The ID
> column in your dataframe is a vector of strings to be used as names, so
> each one pulls out one element from the translator_vector.
>
> Duncan Murdoch
>
>
>
>> Thank you.
>>
>>         [[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.
>>
>>
>

	[[alternative HTML version deleted]]


