recoding question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

recoding question

Lauri Nikkinen
Hi R-users,


I have a data frame like this:

photographer category picture points
Hannu kalat limamikko 1
Teemu kalat verkkovaja 3
Hate kalat munat puoliks padassa 6
Hannu kalat isokala 8
Teemu kasvit, sienet ja muut eliöt harppi 2
Hate kasvit, sienet ja muut eliöt pyynikki 2
Petteri kasvit, sienet ja muut eliöt harmaaleppä 5
Lauri kasvit, sienet ja muut eliöt lumipuu 9
Teemu linnut kainostelua 1
Petteri linnut viileä harakka 2
Lauri linnut hipö 3
Teemu linnut pinnalla 5
Lassi linnut elämän viiva 7
Lassi nisäkkäät pedot 1
Teemu nisäkkäät Homo sapiens angelus 3
Hate nisäkkäät madekoukkujen suojelupyhimys 3
Lassi nisäkkäät portsan kundi 3
Hannu nisäkkäät maukasta marmeladia 8
Teemu reissut puikot 1
Lassi reissut ajatelkaa, jos Häntä ei olisikaan 2
Lauri reissut kökar 3
Hate reissut matka aikaan joka ei enää palaa 3
Hannu reissut skrinnareita 4
Lauri reissut jääpuut 5
Hannu selkärangattomat kaapin alta löytynyt 2
Hate selkärangattomat vailla armeerausta 2
Teemu selkärangattomat portinvartija 6
Hannu selkärangattomat kaapin alta löytynyt2 8


I want to make a new column named as "final_points" to the data frame that
has numbers following this kind of logic: the highest number in column
"points" in each category will receive a number 3 into new column
"final_points". The second highest number will receive a number 1 into
"final_points" column. Others will receive a 0. Here is how it should look
like after the code has been run:



photographer category picture points final_points
Hannu kalat limamikko 1 0
Teemu kalat verkkovaja 3 0
Hate kalat munat puoliks padassa 6 1
Hannu kalat isokala 8 3
Teemu kasvit, sienet ja muut eliöt harppi 2 0
Hate kasvit, sienet ja muut eliöt pyynikki 2 0
Petteri kasvit, sienet ja muut eliöt harmaaleppä 5 1
Lauri kasvit, sienet ja muut eliöt lumipuu 9 3
Teemu linnut kainostelua 1 0
Petteri linnut viileä harakka 2 0
Lauri linnut hipö 3 0
Teemu linnut pinnalla 5 1
Lassi linnut elämän viiva 7 3
Lassi nisäkkäät pedot 1 0
Teemu nisäkkäät Homo sapiens angelus 3 1
Hate nisäkkäät madekoukkujen suojelupyhimys 3 1
Lassi nisäkkäät portsan kundi 3 1
Hannu nisäkkäät maukasta marmeladia 8 3
Teemu reissut puikot 1 0
Lassi reissut ajatelkaa, jos Häntä ei olisikaan 2 0
Lauri reissut kökar 3 0
Hate reissut matka aikaan joka ei enää palaa 3 0
Hannu reissut skrinnareita 4 1
Lauri reissut jääpuut 5 3
Hannu selkärangattomat kaapin alta löytynyt 2 0
Hate selkärangattomat vailla armeerausta 2 0
Teemu selkärangattomat portinvartija 6 1
Hannu selkärangattomat kaapin alta löytynyt2 8 3



How do I do this with R?



-Lauri

        [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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 | Threaded
Open this post in threaded view
|

Re: recoding question

Petr Klasterecky
Hi,
I suppose you wouldn't mind rearranging rows in your dataframe. So just
use order() to sort your dataframe according to category (first) and
points (second). Now add a new column with values
(3,2,1,0,...,0,3,2,1,0...etc.) You can construct such vector using by()
  or a simple for-loop. There will always be rep(0, n_i-3) if n_i is the
number of observatons in category i.

If you do mind rearranging rows, keep the original permutation stored
elsewhere a use order again in the end to restoring it back.

Petr


Lauri Nikkinen napsal(a):

> Hi R-users,
>
>
> I have a data frame like this:
>
> photographer category picture points
> Hannu kalat limamikko 1
> Teemu kalat verkkovaja 3
> Hate kalat munat puoliks padassa 6
> Hannu kalat isokala 8
> Teemu kasvit, sienet ja muut eliöt harppi 2
> Hate kasvit, sienet ja muut eliöt pyynikki 2
> Petteri kasvit, sienet ja muut eliöt harmaaleppä 5
> Lauri kasvit, sienet ja muut eliöt lumipuu 9
> Teemu linnut kainostelua 1
> Petteri linnut viileä harakka 2
> Lauri linnut hipö 3
> Teemu linnut pinnalla 5
> Lassi linnut elämän viiva 7
> Lassi nisäkkäät pedot 1
> Teemu nisäkkäät Homo sapiens angelus 3
> Hate nisäkkäät madekoukkujen suojelupyhimys 3
> Lassi nisäkkäät portsan kundi 3
> Hannu nisäkkäät maukasta marmeladia 8
> Teemu reissut puikot 1
> Lassi reissut ajatelkaa, jos Häntä ei olisikaan 2
> Lauri reissut kökar 3
> Hate reissut matka aikaan joka ei enää palaa 3
> Hannu reissut skrinnareita 4
> Lauri reissut jääpuut 5
> Hannu selkärangattomat kaapin alta löytynyt 2
> Hate selkärangattomat vailla armeerausta 2
> Teemu selkärangattomat portinvartija 6
> Hannu selkärangattomat kaapin alta löytynyt2 8
>
>
> I want to make a new column named as "final_points" to the data frame that
> has numbers following this kind of logic: the highest number in column
> "points" in each category will receive a number 3 into new column
> "final_points". The second highest number will receive a number 1 into
> "final_points" column. Others will receive a 0. Here is how it should look
> like after the code has been run:
>
>
>
> photographer category picture points final_points
> Hannu kalat limamikko 1 0
> Teemu kalat verkkovaja 3 0
> Hate kalat munat puoliks padassa 6 1
> Hannu kalat isokala 8 3
> Teemu kasvit, sienet ja muut eliöt harppi 2 0
> Hate kasvit, sienet ja muut eliöt pyynikki 2 0
> Petteri kasvit, sienet ja muut eliöt harmaaleppä 5 1
> Lauri kasvit, sienet ja muut eliöt lumipuu 9 3
> Teemu linnut kainostelua 1 0
> Petteri linnut viileä harakka 2 0
> Lauri linnut hipö 3 0
> Teemu linnut pinnalla 5 1
> Lassi linnut elämän viiva 7 3
> Lassi nisäkkäät pedot 1 0
> Teemu nisäkkäät Homo sapiens angelus 3 1
> Hate nisäkkäät madekoukkujen suojelupyhimys 3 1
> Lassi nisäkkäät portsan kundi 3 1
> Hannu nisäkkäät maukasta marmeladia 8 3
> Teemu reissut puikot 1 0
> Lassi reissut ajatelkaa, jos Häntä ei olisikaan 2 0
> Lauri reissut kökar 3 0
> Hate reissut matka aikaan joka ei enää palaa 3 0
> Hannu reissut skrinnareita 4 1
> Lauri reissut jääpuut 5 3
> Hannu selkärangattomat kaapin alta löytynyt 2 0
> Hate selkärangattomat vailla armeerausta 2 0
> Teemu selkärangattomat portinvartija 6 1
> Hannu selkärangattomat kaapin alta löytynyt2 8 3
>
>
>
> How do I do this with R?
>
>
>
> -Lauri
>
> [[alternative HTML version deleted]]
>
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________
> [hidden email] 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.

--
Petr Klasterecky
Dept. of Probability and Statistics
Charles University in Prague
Czech Republic

______________________________________________
[hidden email] 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.