Forum Discussion

neldarov's avatar
neldarov
Frequent Visitor
7 years ago
Solved

R script to read query/table

I am trying to read one of the query output/table using R inside script box: 

x <- table1$"Col1"

I get this error message: Details: "ADO.NET: R script error. Error: object 'Table1' not found Execution halted

 

Can someone tell me how to read it?

  • dm-p's avatar
    dm-p
    7 years ago

    It is simple :)

    The dataset dataframe is made available to the R Transform by Power Query.

    I'll see if I can break down further by walking through - here's my query after I connect to a table in my database (supplying SQL in the connection dialog will produce something similar if it runs successfully):

    SQL Results

    I create a folder called test in the root directory of my hard disk, e.g.:

    Empty 'test' folder

    In Power Query, I select Transform from the ribbon and then Run R script, e.g.:

    Invoking the 'Run R script' transform

    I'm now prompted to provide my code. The pre-filled comment in the text box tells me that dataset holds the input data (results of the previous step, i.e. my table), e.g.:

    Empty dialog weith pre-filled comment

    I want to save the output from my SQL query as results.csv in the test subfolder I created earlier, so I add the code to do this. Because Power Query tells me I can use dataset for this, I can add this to my R code, e.g.:

    Utilising the 'dataset' dataframe that Power Query has informed me about

    When I click OK, my code will run. Here's what my query looks like now:

    I can then navigate to my folder to check I have a file:

    results.csv present in my folder

    I can verify this is correct by opening it, e.g.:exported .csv in VS Code

    Now I know this works, I can refresh my data in Power BI Desktop any time I like and the file will be overwritten in the target location, e.g.:File after refreshing my data, with updated timestamp

    I'm hoping that this clarifies things end-to-end.

    Regards,

    Daniel

10 Replies

  • dm-p's avatar
    dm-p
    Super User

    Hi neldarov,

    Are you using the R script visual? If so, the data is exposed a dataframe named dataset. Please refer to step #3 in this linked article for reference.

    As long as your field name is Col1 then the following would work:

    x <- dataset$"Col1"

    I've tested with a recent dataset, and the editor will show any fields as part of autocomplete, e.g.: for my test dataset:

    Note this code doesn't fully work in Power BI Desktop as it doesn't produce a plot (yet) but it does work if I debug in RStudio, e.g.:

    Hopefully this should be all you need.

    Good luck!

    Daniel

    • neldarov's avatar
      neldarov
      Frequent Visitor

      Thanks, but I am using just an R script not visuals. I need to save the table as an csv file using R script.

      • dm-p's avatar
        dm-p
        Super User
        Hi - can you please advise where in Power BI Desktop you're running the script? Presumably Power Query if not within visuals?
        Thanks,
        Daniel