Extract column name and match with another column Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) The Ask Question Wizard is Live! Data science time! April 2019 and salary with experienceHow to sort a dataframe by multiple column(s)Drop data frame columns by nameChanging column names of a data frameExtracting specific columns from a data frameCall apply-like function on each row of dataframe with multiple arguments from each rowFind highest threshold across 5 columns of dataframe to obtain n recordsCombine Dataframe Headers into Separate Dataframeobtaining max value in each column and printing associated column and row nameMake matrix from two columns of a dataframe and populate it by third without nested for loopExtract column positions that differ rows with duplicated pairs in a dataframe

How should I respond to a player wanting to catch a sword between their hands?

How to market an anarchic city as a tourism spot to people living in civilized areas?

Did the new image of black hole confirm the general theory of relativity?

Need a suitable toxic chemical for a murder plot in my novel

Stop battery usage [Ubuntu 18]

The following signatures were invalid: EXPKEYSIG 1397BC53640DB551

How many things? AとBがふたつ

How to say 'striped' in Latin

How to say that you spent the night with someone, you were only sleeping and nothing else?

Stopping real property loss from eroding embankment

I'm having difficulty getting my players to do stuff in a sandbox campaign

Can I add database to AWS RDS MySQL without creating new instance?

How do I keep my slimes from escaping their pens?

Is there a documented rationale why the House Ways and Means chairman can demand tax info?

If I can make up priors, why can't I make up posteriors?

Blender game recording at the wrong time

What is the order of Mitzvot in Rambam's Sefer Hamitzvot?

Is 1 ppb equal to 1 μg/kg?

What was the last x86 CPU that did not have the x87 floating-point unit built in?

How do I automatically answer y in bash script?

Statistical model of ligand substitution

Why is "Captain Marvel" translated as male in Portugal?

Can smartphones with the same camera sensor have different image quality?

Cold is to Refrigerator as warm is to?



Extract column name and match with another column



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
The Ask Question Wizard is Live!
Data science time! April 2019 and salary with experienceHow to sort a dataframe by multiple column(s)Drop data frame columns by nameChanging column names of a data frameExtracting specific columns from a data frameCall apply-like function on each row of dataframe with multiple arguments from each rowFind highest threshold across 5 columns of dataframe to obtain n recordsCombine Dataframe Headers into Separate Dataframeobtaining max value in each column and printing associated column and row nameMake matrix from two columns of a dataframe and populate it by third without nested for loopExtract column positions that differ rows with duplicated pairs in a dataframe



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








3















I have a dataframe MutationsNumberTable like this



 ACC BLCA BRCA CESC HGNC
1: 1 2 6 0 OPN4
2: 2 3 1 1 KLRB1
3: 2 23 4 5 SALL2
4: 1 8 5 7 PLCB2


The goal is to create a matrix where I have unique pairs "gene-cancer type" where a number in a table is greater than a threshold (let's say, 5):



Desired output:



 HGNC Cancer
1: OPN4 CESC
2: SALL2 BRCA
3: SALL2 CESC
4: PLCB2 BLCA
5: PLCB2 BRCA
6: PLCB2 CESC


So far, I could come up with this:



n = ncol(MutationsNumberTable)
whereTrue = MutationsNumberTable[,1:(n-1)] >=threshold


but I have difficulties after to use these logical values to make a matrix I need. I tried



colnames(whereTrue)[whereTrue]


but it is not exactly what I need.










share|improve this question




























    3















    I have a dataframe MutationsNumberTable like this



     ACC BLCA BRCA CESC HGNC
    1: 1 2 6 0 OPN4
    2: 2 3 1 1 KLRB1
    3: 2 23 4 5 SALL2
    4: 1 8 5 7 PLCB2


    The goal is to create a matrix where I have unique pairs "gene-cancer type" where a number in a table is greater than a threshold (let's say, 5):



    Desired output:



     HGNC Cancer
    1: OPN4 CESC
    2: SALL2 BRCA
    3: SALL2 CESC
    4: PLCB2 BLCA
    5: PLCB2 BRCA
    6: PLCB2 CESC


    So far, I could come up with this:



    n = ncol(MutationsNumberTable)
    whereTrue = MutationsNumberTable[,1:(n-1)] >=threshold


    but I have difficulties after to use these logical values to make a matrix I need. I tried



    colnames(whereTrue)[whereTrue]


    but it is not exactly what I need.










    share|improve this question
























      3












      3








      3








      I have a dataframe MutationsNumberTable like this



       ACC BLCA BRCA CESC HGNC
      1: 1 2 6 0 OPN4
      2: 2 3 1 1 KLRB1
      3: 2 23 4 5 SALL2
      4: 1 8 5 7 PLCB2


      The goal is to create a matrix where I have unique pairs "gene-cancer type" where a number in a table is greater than a threshold (let's say, 5):



      Desired output:



       HGNC Cancer
      1: OPN4 CESC
      2: SALL2 BRCA
      3: SALL2 CESC
      4: PLCB2 BLCA
      5: PLCB2 BRCA
      6: PLCB2 CESC


      So far, I could come up with this:



      n = ncol(MutationsNumberTable)
      whereTrue = MutationsNumberTable[,1:(n-1)] >=threshold


      but I have difficulties after to use these logical values to make a matrix I need. I tried



      colnames(whereTrue)[whereTrue]


      but it is not exactly what I need.










      share|improve this question














      I have a dataframe MutationsNumberTable like this



       ACC BLCA BRCA CESC HGNC
      1: 1 2 6 0 OPN4
      2: 2 3 1 1 KLRB1
      3: 2 23 4 5 SALL2
      4: 1 8 5 7 PLCB2


      The goal is to create a matrix where I have unique pairs "gene-cancer type" where a number in a table is greater than a threshold (let's say, 5):



      Desired output:



       HGNC Cancer
      1: OPN4 CESC
      2: SALL2 BRCA
      3: SALL2 CESC
      4: PLCB2 BLCA
      5: PLCB2 BRCA
      6: PLCB2 CESC


      So far, I could come up with this:



      n = ncol(MutationsNumberTable)
      whereTrue = MutationsNumberTable[,1:(n-1)] >=threshold


      but I have difficulties after to use these logical values to make a matrix I need. I tried



      colnames(whereTrue)[whereTrue]


      but it is not exactly what I need.







      r filtering






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 8 at 15:04









      lizavetalizaveta

      657




      657






















          1 Answer
          1






          active

          oldest

          votes


















          5














          We can do a gather to 'long' format and then filter



          library(dplyr)
          library(tidyr)
          gather(df1, Cancer, val, -HGNC) %>%
          filter(val >= 5) %>%
          select(-val)



          Or using data.table



          library(data.table)
          setDT(df1)[, melt(.SD, id.var = 'HGNC')[value >= 5, .(HGNC, Cancer = variable)]]





          share|improve this answer




















          • 1





            data.table worked perfectly well, thanks a lot! But gather function gives an error: Error in select(., -val) : unused argument (-val).

            – lizaveta
            Mar 8 at 15:15






          • 2





            @lizaveta May be select from another package is masking. Can you try %>% dplyr::select(-val)

            – akrun
            Mar 8 at 15:16











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55065915%2fextract-column-name-and-match-with-another-column%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5














          We can do a gather to 'long' format and then filter



          library(dplyr)
          library(tidyr)
          gather(df1, Cancer, val, -HGNC) %>%
          filter(val >= 5) %>%
          select(-val)



          Or using data.table



          library(data.table)
          setDT(df1)[, melt(.SD, id.var = 'HGNC')[value >= 5, .(HGNC, Cancer = variable)]]





          share|improve this answer




















          • 1





            data.table worked perfectly well, thanks a lot! But gather function gives an error: Error in select(., -val) : unused argument (-val).

            – lizaveta
            Mar 8 at 15:15






          • 2





            @lizaveta May be select from another package is masking. Can you try %>% dplyr::select(-val)

            – akrun
            Mar 8 at 15:16















          5














          We can do a gather to 'long' format and then filter



          library(dplyr)
          library(tidyr)
          gather(df1, Cancer, val, -HGNC) %>%
          filter(val >= 5) %>%
          select(-val)



          Or using data.table



          library(data.table)
          setDT(df1)[, melt(.SD, id.var = 'HGNC')[value >= 5, .(HGNC, Cancer = variable)]]





          share|improve this answer




















          • 1





            data.table worked perfectly well, thanks a lot! But gather function gives an error: Error in select(., -val) : unused argument (-val).

            – lizaveta
            Mar 8 at 15:15






          • 2





            @lizaveta May be select from another package is masking. Can you try %>% dplyr::select(-val)

            – akrun
            Mar 8 at 15:16













          5












          5








          5







          We can do a gather to 'long' format and then filter



          library(dplyr)
          library(tidyr)
          gather(df1, Cancer, val, -HGNC) %>%
          filter(val >= 5) %>%
          select(-val)



          Or using data.table



          library(data.table)
          setDT(df1)[, melt(.SD, id.var = 'HGNC')[value >= 5, .(HGNC, Cancer = variable)]]





          share|improve this answer















          We can do a gather to 'long' format and then filter



          library(dplyr)
          library(tidyr)
          gather(df1, Cancer, val, -HGNC) %>%
          filter(val >= 5) %>%
          select(-val)



          Or using data.table



          library(data.table)
          setDT(df1)[, melt(.SD, id.var = 'HGNC')[value >= 5, .(HGNC, Cancer = variable)]]






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 8 at 15:09

























          answered Mar 8 at 15:06









          akrunakrun

          422k13209284




          422k13209284







          • 1





            data.table worked perfectly well, thanks a lot! But gather function gives an error: Error in select(., -val) : unused argument (-val).

            – lizaveta
            Mar 8 at 15:15






          • 2





            @lizaveta May be select from another package is masking. Can you try %>% dplyr::select(-val)

            – akrun
            Mar 8 at 15:16












          • 1





            data.table worked perfectly well, thanks a lot! But gather function gives an error: Error in select(., -val) : unused argument (-val).

            – lizaveta
            Mar 8 at 15:15






          • 2





            @lizaveta May be select from another package is masking. Can you try %>% dplyr::select(-val)

            – akrun
            Mar 8 at 15:16







          1




          1





          data.table worked perfectly well, thanks a lot! But gather function gives an error: Error in select(., -val) : unused argument (-val).

          – lizaveta
          Mar 8 at 15:15





          data.table worked perfectly well, thanks a lot! But gather function gives an error: Error in select(., -val) : unused argument (-val).

          – lizaveta
          Mar 8 at 15:15




          2




          2





          @lizaveta May be select from another package is masking. Can you try %>% dplyr::select(-val)

          – akrun
          Mar 8 at 15:16





          @lizaveta May be select from another package is masking. Can you try %>% dplyr::select(-val)

          – akrun
          Mar 8 at 15:16



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55065915%2fextract-column-name-and-match-with-another-column%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          1928 у кіно

          Захаров Федір Захарович

          Ель Греко