How to change the values of table with column name










1















Following code gave me data table



library(RMySQL)
library(reshape)
library(philentropy)
library(distances)
mydb = dbConnect(MySQL(), user='root', password='root', dbname='test_db', host='127.0.0.1')
rs = dbSendQuery(mydb,'select cv.entity_id,cv.attribute_id, cv.value/1000 as value from test_1 cv limit 100')
data = fetch(rs,n=-1)
pivotedData = cast(data,entity_id ~ attribute_id)
distCalcNew = distances(pivotedData,id_variable='entity_id')
nns <- nearest_neighbor_search(distCalcNew,k=3)
nnsdt <- data.table(nns)


I have a data table in R as follows, data points indicates column indices



 8456 8720 5780
1: 1 2 3
2: 3 3 2
3: 2 1 1


Is it possible to get the following?



 8456 8720 5780
1: 8456 8720 5780
2: 5780 5780 8720
3: 8720 8456 8456


Sorry, I'm new to R










share|improve this question




























    1















    Following code gave me data table



    library(RMySQL)
    library(reshape)
    library(philentropy)
    library(distances)
    mydb = dbConnect(MySQL(), user='root', password='root', dbname='test_db', host='127.0.0.1')
    rs = dbSendQuery(mydb,'select cv.entity_id,cv.attribute_id, cv.value/1000 as value from test_1 cv limit 100')
    data = fetch(rs,n=-1)
    pivotedData = cast(data,entity_id ~ attribute_id)
    distCalcNew = distances(pivotedData,id_variable='entity_id')
    nns <- nearest_neighbor_search(distCalcNew,k=3)
    nnsdt <- data.table(nns)


    I have a data table in R as follows, data points indicates column indices



     8456 8720 5780
    1: 1 2 3
    2: 3 3 2
    3: 2 1 1


    Is it possible to get the following?



     8456 8720 5780
    1: 8456 8720 5780
    2: 5780 5780 8720
    3: 8720 8456 8456


    Sorry, I'm new to R










    share|improve this question


























      1












      1








      1








      Following code gave me data table



      library(RMySQL)
      library(reshape)
      library(philentropy)
      library(distances)
      mydb = dbConnect(MySQL(), user='root', password='root', dbname='test_db', host='127.0.0.1')
      rs = dbSendQuery(mydb,'select cv.entity_id,cv.attribute_id, cv.value/1000 as value from test_1 cv limit 100')
      data = fetch(rs,n=-1)
      pivotedData = cast(data,entity_id ~ attribute_id)
      distCalcNew = distances(pivotedData,id_variable='entity_id')
      nns <- nearest_neighbor_search(distCalcNew,k=3)
      nnsdt <- data.table(nns)


      I have a data table in R as follows, data points indicates column indices



       8456 8720 5780
      1: 1 2 3
      2: 3 3 2
      3: 2 1 1


      Is it possible to get the following?



       8456 8720 5780
      1: 8456 8720 5780
      2: 5780 5780 8720
      3: 8720 8456 8456


      Sorry, I'm new to R










      share|improve this question
















      Following code gave me data table



      library(RMySQL)
      library(reshape)
      library(philentropy)
      library(distances)
      mydb = dbConnect(MySQL(), user='root', password='root', dbname='test_db', host='127.0.0.1')
      rs = dbSendQuery(mydb,'select cv.entity_id,cv.attribute_id, cv.value/1000 as value from test_1 cv limit 100')
      data = fetch(rs,n=-1)
      pivotedData = cast(data,entity_id ~ attribute_id)
      distCalcNew = distances(pivotedData,id_variable='entity_id')
      nns <- nearest_neighbor_search(distCalcNew,k=3)
      nnsdt <- data.table(nns)


      I have a data table in R as follows, data points indicates column indices



       8456 8720 5780
      1: 1 2 3
      2: 3 3 2
      3: 2 1 1


      Is it possible to get the following?



       8456 8720 5780
      1: 8456 8720 5780
      2: 5780 5780 8720
      3: 8720 8456 8456


      Sorry, I'm new to R







      r data.table






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 14 '18 at 7:20







      Nausif

















      asked Nov 14 '18 at 7:00









      NausifNausif

      132110




      132110






















          3 Answers
          3






          active

          oldest

          votes


















          2














          Here is another idea,



          m1 <- matrix(names(x)[unlist(x)], ncol = ncol(x))

          #tidy up
          setNames(data.frame(m1), names(x))
          # 8456 8720 5780
          #1 8456 8720 5780
          #2 5780 5780 8720
          #3 8720 8456 8456





          share|improve this answer






























            1














            You can use lapply to the DataFrame df, so that based on the value, it will retrive the column name in that index



            df <- lapply(df, function(x) 
            return(colnames(df)[x])
            )





            share|improve this answer

























            • I have updated the example, now how will I do it?

              – Nausif
              Nov 14 '18 at 7:08











            • Can you also post the code for data initialization?

              – Andreas
              Nov 14 '18 at 7:10











            • I have updated the code initialization

              – Nausif
              Nov 14 '18 at 7:21











            • Edited based on your example

              – Andreas
              Nov 14 '18 at 7:34


















            1














            Using lapply, but there must be a better "data.table-way":



            library(data.table)

            x <- fread("8456 8720 5780
            1 2 3
            3 3 2
            2 1 1", header = TRUE)


            as.data.table(lapply(x, function(i) as.integer(colnames(x)[ i ])))
            # 8456 8720 5780
            # 1: 8456 8720 5780
            # 2: 5780 5780 8720
            # 3: 8720 8456 8456





            share|improve this answer

























            • I don't have string instead a data table to begin with

              – Nausif
              Nov 14 '18 at 7:22











            • @Nausif just use as.integer ? (edited)

              – zx8754
              Nov 14 '18 at 8:11










            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%2f53294685%2fhow-to-change-the-values-of-table-with-column-name%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            Here is another idea,



            m1 <- matrix(names(x)[unlist(x)], ncol = ncol(x))

            #tidy up
            setNames(data.frame(m1), names(x))
            # 8456 8720 5780
            #1 8456 8720 5780
            #2 5780 5780 8720
            #3 8720 8456 8456





            share|improve this answer



























              2














              Here is another idea,



              m1 <- matrix(names(x)[unlist(x)], ncol = ncol(x))

              #tidy up
              setNames(data.frame(m1), names(x))
              # 8456 8720 5780
              #1 8456 8720 5780
              #2 5780 5780 8720
              #3 8720 8456 8456





              share|improve this answer

























                2












                2








                2







                Here is another idea,



                m1 <- matrix(names(x)[unlist(x)], ncol = ncol(x))

                #tidy up
                setNames(data.frame(m1), names(x))
                # 8456 8720 5780
                #1 8456 8720 5780
                #2 5780 5780 8720
                #3 8720 8456 8456





                share|improve this answer













                Here is another idea,



                m1 <- matrix(names(x)[unlist(x)], ncol = ncol(x))

                #tidy up
                setNames(data.frame(m1), names(x))
                # 8456 8720 5780
                #1 8456 8720 5780
                #2 5780 5780 8720
                #3 8720 8456 8456






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 14 '18 at 7:22









                SotosSotos

                30.5k51640




                30.5k51640























                    1














                    You can use lapply to the DataFrame df, so that based on the value, it will retrive the column name in that index



                    df <- lapply(df, function(x) 
                    return(colnames(df)[x])
                    )





                    share|improve this answer

























                    • I have updated the example, now how will I do it?

                      – Nausif
                      Nov 14 '18 at 7:08











                    • Can you also post the code for data initialization?

                      – Andreas
                      Nov 14 '18 at 7:10











                    • I have updated the code initialization

                      – Nausif
                      Nov 14 '18 at 7:21











                    • Edited based on your example

                      – Andreas
                      Nov 14 '18 at 7:34















                    1














                    You can use lapply to the DataFrame df, so that based on the value, it will retrive the column name in that index



                    df <- lapply(df, function(x) 
                    return(colnames(df)[x])
                    )





                    share|improve this answer

























                    • I have updated the example, now how will I do it?

                      – Nausif
                      Nov 14 '18 at 7:08











                    • Can you also post the code for data initialization?

                      – Andreas
                      Nov 14 '18 at 7:10











                    • I have updated the code initialization

                      – Nausif
                      Nov 14 '18 at 7:21











                    • Edited based on your example

                      – Andreas
                      Nov 14 '18 at 7:34













                    1












                    1








                    1







                    You can use lapply to the DataFrame df, so that based on the value, it will retrive the column name in that index



                    df <- lapply(df, function(x) 
                    return(colnames(df)[x])
                    )





                    share|improve this answer















                    You can use lapply to the DataFrame df, so that based on the value, it will retrive the column name in that index



                    df <- lapply(df, function(x) 
                    return(colnames(df)[x])
                    )






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Nov 14 '18 at 7:33

























                    answered Nov 14 '18 at 7:06









                    AndreasAndreas

                    2,00331220




                    2,00331220












                    • I have updated the example, now how will I do it?

                      – Nausif
                      Nov 14 '18 at 7:08











                    • Can you also post the code for data initialization?

                      – Andreas
                      Nov 14 '18 at 7:10











                    • I have updated the code initialization

                      – Nausif
                      Nov 14 '18 at 7:21











                    • Edited based on your example

                      – Andreas
                      Nov 14 '18 at 7:34

















                    • I have updated the example, now how will I do it?

                      – Nausif
                      Nov 14 '18 at 7:08











                    • Can you also post the code for data initialization?

                      – Andreas
                      Nov 14 '18 at 7:10











                    • I have updated the code initialization

                      – Nausif
                      Nov 14 '18 at 7:21











                    • Edited based on your example

                      – Andreas
                      Nov 14 '18 at 7:34
















                    I have updated the example, now how will I do it?

                    – Nausif
                    Nov 14 '18 at 7:08





                    I have updated the example, now how will I do it?

                    – Nausif
                    Nov 14 '18 at 7:08













                    Can you also post the code for data initialization?

                    – Andreas
                    Nov 14 '18 at 7:10





                    Can you also post the code for data initialization?

                    – Andreas
                    Nov 14 '18 at 7:10













                    I have updated the code initialization

                    – Nausif
                    Nov 14 '18 at 7:21





                    I have updated the code initialization

                    – Nausif
                    Nov 14 '18 at 7:21













                    Edited based on your example

                    – Andreas
                    Nov 14 '18 at 7:34





                    Edited based on your example

                    – Andreas
                    Nov 14 '18 at 7:34











                    1














                    Using lapply, but there must be a better "data.table-way":



                    library(data.table)

                    x <- fread("8456 8720 5780
                    1 2 3
                    3 3 2
                    2 1 1", header = TRUE)


                    as.data.table(lapply(x, function(i) as.integer(colnames(x)[ i ])))
                    # 8456 8720 5780
                    # 1: 8456 8720 5780
                    # 2: 5780 5780 8720
                    # 3: 8720 8456 8456





                    share|improve this answer

























                    • I don't have string instead a data table to begin with

                      – Nausif
                      Nov 14 '18 at 7:22











                    • @Nausif just use as.integer ? (edited)

                      – zx8754
                      Nov 14 '18 at 8:11















                    1














                    Using lapply, but there must be a better "data.table-way":



                    library(data.table)

                    x <- fread("8456 8720 5780
                    1 2 3
                    3 3 2
                    2 1 1", header = TRUE)


                    as.data.table(lapply(x, function(i) as.integer(colnames(x)[ i ])))
                    # 8456 8720 5780
                    # 1: 8456 8720 5780
                    # 2: 5780 5780 8720
                    # 3: 8720 8456 8456





                    share|improve this answer

























                    • I don't have string instead a data table to begin with

                      – Nausif
                      Nov 14 '18 at 7:22











                    • @Nausif just use as.integer ? (edited)

                      – zx8754
                      Nov 14 '18 at 8:11













                    1












                    1








                    1







                    Using lapply, but there must be a better "data.table-way":



                    library(data.table)

                    x <- fread("8456 8720 5780
                    1 2 3
                    3 3 2
                    2 1 1", header = TRUE)


                    as.data.table(lapply(x, function(i) as.integer(colnames(x)[ i ])))
                    # 8456 8720 5780
                    # 1: 8456 8720 5780
                    # 2: 5780 5780 8720
                    # 3: 8720 8456 8456





                    share|improve this answer















                    Using lapply, but there must be a better "data.table-way":



                    library(data.table)

                    x <- fread("8456 8720 5780
                    1 2 3
                    3 3 2
                    2 1 1", header = TRUE)


                    as.data.table(lapply(x, function(i) as.integer(colnames(x)[ i ])))
                    # 8456 8720 5780
                    # 1: 8456 8720 5780
                    # 2: 5780 5780 8720
                    # 3: 8720 8456 8456






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Nov 14 '18 at 8:11

























                    answered Nov 14 '18 at 7:11









                    zx8754zx8754

                    30.1k763100




                    30.1k763100












                    • I don't have string instead a data table to begin with

                      – Nausif
                      Nov 14 '18 at 7:22











                    • @Nausif just use as.integer ? (edited)

                      – zx8754
                      Nov 14 '18 at 8:11

















                    • I don't have string instead a data table to begin with

                      – Nausif
                      Nov 14 '18 at 7:22











                    • @Nausif just use as.integer ? (edited)

                      – zx8754
                      Nov 14 '18 at 8:11
















                    I don't have string instead a data table to begin with

                    – Nausif
                    Nov 14 '18 at 7:22





                    I don't have string instead a data table to begin with

                    – Nausif
                    Nov 14 '18 at 7:22













                    @Nausif just use as.integer ? (edited)

                    – zx8754
                    Nov 14 '18 at 8:11





                    @Nausif just use as.integer ? (edited)

                    – zx8754
                    Nov 14 '18 at 8:11

















                    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%2f53294685%2fhow-to-change-the-values-of-table-with-column-name%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

                    Use pre created SQLite database for Android project in kotlin

                    Darth Vader #20

                    Ondo