Naresh Gurbuxani
2025-Jan-28 18:55 UTC
[R] R CMD check says no visible binding for global variable
Data.frame is returned by SQL query. It does have column names. In the function, I make small changes to some columns. Something like: Myquery <- ?SELECT date, price, stock FROM stocktab WHERE stock = ?ABC? AND date > ?2025-01-01?;? Prices <- dbGetQuery(con, myquery) SetDT(Prices) Prices[, date = as.Date(date)] R CMD check say ?no visible binding for global variable ?date?? Sent from my iPhone On Jan 28, 2025, at 1:24?AM, Sorkin, John <jsorkin at som.umaryland.edu> wrote: ? There you go, once again helping strengthen ;) John Get Outlook for iOS<https://aka.ms/o0ukef> ________________________________ From: R-help <r-help-bounces at r-project.org> on behalf of avi.e.gross at gmail.com <avi.e.gross at gmail.com> Sent: Tuesday, January 28, 2025 12:01:25 AM To: 'Naresh Gurbuxani' <naresh_gurbuxani at hotmail.com>; r-help at r-project.org <r-help at r-project.org> Subject: Re: [R] R CMD check says no visible binding for global variable Naresh, I am not sure how you are creating your data.frame so it has no, I think, column names. There are two scenarios including one where it is not really a valid data.frame and one where it can be handled before any other use as shown below. If it cannot be used, you might need to modify how your SQL or the function you call creates it so it includes either names it chooses or that you supply. One silly solution if to give your data frame names before using it later. In prticulr, if you know what the columns contain, you can choose suitable names like this if you have exactly three columns:> colnames(mydata) <- c("first", "second", "third") > mydatafirst second third 1 1 2 3 If you have a varying number of columns and don't care what the names are, you can make n names that look like temp1, temp2, ... tempn like this:> paste0("temp", 1:ncol(mydata))[1] "temp1" "temp2" "temp3" Obviously, you substitute in whatever your data.frame is called. So the code to add names for columns looks like:> colnames(mydata) <- paste0("temp", 1:ncol(mydata)) > mydatatemp1 temp2 temp3 1 1 2 3 -----Original Message----- From: R-help <r-help-bounces at r-project.org> On Behalf Of Naresh Gurbuxani Sent: Monday, January 27, 2025 5:46 PM To: r-help at r-project.org Subject: [R] R CMD check says no visible binding for global variable I have written a function which returns an SQL query result as a data.frame. Each column of data.frame is a variable not explicitly defined. For every column name, R CMD check says ?no visible binding for global variable <name>. Status: 1 NOTE Is it possible to tell R CMD check that these variables are OK? Thanks, Naresh Sent from my iPhone ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101270089%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ExT4UObp9q1CqqqUNyr9GdX3fs6UFoCIndD0UFdQ2bE%3D&reserved=0<https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101299265%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=KHzs8stxNBdUeRR9LW8DdYICbzLU3wovaKNJBqL%2BBOY%3D&reserved=0<https://www.r-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101312257%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ygouzLUqvgdAsZjnGVrFwzM93bYn%2Fbjevj5MyagGE04%3D&reserved=0<https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101326801%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=kx%2FukXxxEEiVwui%2F6lIsA45q6Hiz97Qpj%2BwHi2eoSqA%3D&reserved=0<https://www.r-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]]
Duncan Murdoch
2025-Jan-28 20:09 UTC
[R] R CMD check says no visible binding for global variable
On 2025-01-28 1:55 p.m., Naresh Gurbuxani wrote:> Data.frame is returned by SQL query. It does have column names. In the function, I make small changes to some columns. > > Something like: > > Myquery <- ?SELECT date, price, stock FROM stocktab WHERE stock = ?ABC? AND date > ?2025-01-01?;? > > Prices <- dbGetQuery(con, myquery) > SetDT(Prices) > Prices[, date = as.Date(date)]If Prices were a regular dataframe at this point, then the message would be correct. You can't calculate `as.Date(date)` without telling R where to look for the `date` variable. However, you have set it to be a data.table instead. They use nonstandard evaluation and look up `date` in the columns of `Prices`, and things work. However, R's checks don't know this, so you still get the complaint. The fix given by others is easiest: sometime before this add a line date <- NULL and it will satisfy the check code. Duncan Murdoch> > > R CMD check say ?no visible binding for global variable ?date?? > > > Sent from my iPhone > > On Jan 28, 2025, at 1:24?AM, Sorkin, John <jsorkin at som.umaryland.edu> wrote: > > ? > There you go, once again helping strengthen ;) > John > > Get Outlook for iOS<https://aka.ms/o0ukef> > ________________________________ > From: R-help <r-help-bounces at r-project.org> on behalf of avi.e.gross at gmail.com <avi.e.gross at gmail.com> > Sent: Tuesday, January 28, 2025 12:01:25 AM > To: 'Naresh Gurbuxani' <naresh_gurbuxani at hotmail.com>; r-help at r-project.org <r-help at r-project.org> > Subject: Re: [R] R CMD check says no visible binding for global variable > > Naresh, > > I am not sure how you are creating your data.frame so it has no, I think, column names. There are two scenarios including one where it is not really a valid data.frame and one where it can be handled before any other use as shown below. If it cannot be used, you might need to modify how your SQL or the function you call creates it so it includes either names it chooses or that you supply. > > One silly solution if to give your data frame names before using it later. In prticulr, if you know what the columns contain, you can choose suitable names like this if you have exactly three columns: > >> colnames(mydata) <- c("first", "second", "third") >> mydata > first second third > 1 1 2 3 > > If you have a varying number of columns and don't care what the names are, you can make n names that look like temp1, temp2, ... tempn like this: > >> paste0("temp", 1:ncol(mydata)) > [1] "temp1" "temp2" "temp3" > > Obviously, you substitute in whatever your data.frame is called. > > So the code to add names for columns looks like: > >> colnames(mydata) <- paste0("temp", 1:ncol(mydata)) >> mydata > temp1 temp2 temp3 > 1 1 2 3 > > > -----Original Message----- > From: R-help <r-help-bounces at r-project.org> On Behalf Of Naresh Gurbuxani > Sent: Monday, January 27, 2025 5:46 PM > To: r-help at r-project.org > Subject: [R] R CMD check says no visible binding for global variable > > I have written a function which returns an SQL query result as a data.frame. Each column of data.frame is a variable not explicitly defined. > > For every column name, R CMD check says ?no visible binding for global variable <name>. Status: 1 NOTE > > Is it possible to tell R CMD check that these variables are OK? > > Thanks, > Naresh > > Sent from my iPhone > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101270089%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ExT4UObp9q1CqqqUNyr9GdX3fs6UFoCIndD0UFdQ2bE%3D&reserved=0<https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101299265%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=KHzs8stxNBdUeRR9LW8DdYICbzLU3wovaKNJBqL%2BBOY%3D&reserved=0<https://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101312257%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ygouzLUqvgdAsZjnGVrFwzM93bYn%2Fbjevj5MyagGE04%3D&reserved=0<https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101326801%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=kx%2FukXxxEEiVwui%2F6lIsA45q6Hiz97Qpj%2BwHi2eoSqA%3D&reserved=0<https://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide https://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
@vi@e@gross m@iii@g oii gm@ii@com
2025-Jan-28 21:24 UTC
[R] R CMD check says no visible binding for global variable
Naresh, I think your details suggest your earlier request was not well defined. Your problem looks like this line of code was wrong and did something you did not expect. It should be easy to fix. But I note you changed Prices to use the data.table package. Mind you, I thought the function was lower case setDT and you mention SetDT. At this point, I cannot help you as I do not know enough about the package. As a general rule, the best way to ask for help includes mentioning the packages you used. The code snippet did not have a library() statement that would be needed. Here is the original: Prices[, date = as.Date(date)] I cannot speak for how data.table might parse that. In base R, it would not work and I can suggest what would. What you wanted to do was convert a column containing a date in some format into a date in some other format. Am I right? In particular, I am guessing the date returned by SQL into the Prices data.frame is there as text in a standard format. If not, you may need to convert the date some more specific way. Here is a way outside data.table that might work within it as well. Prices$date <- as.Date(Prices$date) The above replaces the contents of one vector/column and note the suggested use is not of ?=? which gave you a side-effect, but to use ?<-? in the R-thritic way. There are other variations and yet more if using the dplyr or other packages, but the above is fairly simple and straightforward and uses base R. I will spare you further explanations and lecturing on what I thought your code would do as I looked again and realize it is not a standard data.frame anymore. Here is a test case if your date is in this format: Prices <- data.frame(date=c("2025-01-01", "2025-01-26"), price=c(12, 14), stock=c("AAPL", "MSFT")) Prices$date <- as.Date(Prices$date) The result is:> Pricesdate price stock 1 2025-01-01 12 AAPL 2 2025-01-26 14 MSFT If your date is in some other format, you have to specify the format. See the help on as.Date to see how to set the format=option. If anyone wants to explain better on the data.table method and maybe explain what went wrong, I would be happy to hear it, as well as any corrections on what I wrote. From: Naresh Gurbuxani <naresh_gurbuxani at hotmail.com> Sent: Tuesday, January 28, 2025 1:56 PM To: John Sorkin <jsorkin at som.umaryland.edu> Cc: avi.e.gross at gmail.com; r-help at r-project.org Subject: Re: [R] R CMD check says no visible binding for global variable Data.frame is returned by SQL query. It does have column names. In the function, I make small changes to some columns. Something like: Myquery <- ?SELECT date, price, stock FROM stocktab WHERE stock = ?ABC? AND date > ?2025-01-01?;? Prices <- dbGetQuery(con, myquery) SetDT(Prices) Prices[, date = as.Date(date)] R CMD check say ?no visible binding for global variable ?date?? Sent from my iPhone On Jan 28, 2025, at 1:24?AM, Sorkin, John <jsorkin at som.umaryland.edu <mailto:jsorkin at som.umaryland.edu> > wrote: ? There you go, once again helping strengthen ;) John Get Outlook for iOS <https://aka.ms/o0ukef> _____ From: R-help <r-help-bounces at r-project.org <mailto:r-help-bounces at r-project.org> > on behalf of avi.e.gross at gmail.com <mailto:avi.e.gross at gmail.com> <avi.e.gross at gmail.com <mailto:avi.e.gross at gmail.com> > Sent: Tuesday, January 28, 2025 12:01:25 AM To: 'Naresh Gurbuxani' <naresh_gurbuxani at hotmail.com <mailto:naresh_gurbuxani at hotmail.com> >; r-help at r-project.org <mailto:r-help at r-project.org> <r-help at r-project.org <mailto:r-help at r-project.org> > Subject: Re: [R] R CMD check says no visible binding for global variable Naresh, I am not sure how you are creating your data.frame so it has no, I think, column names. There are two scenarios including one where it is not really a valid data.frame and one where it can be handled before any other use as shown below. If it cannot be used, you might need to modify how your SQL or the function you call creates it so it includes either names it chooses or that you supply. One silly solution if to give your data frame names before using it later. In prticulr, if you know what the columns contain, you can choose suitable names like this if you have exactly three columns:> colnames(mydata) <- c("first", "second", "third") > mydatafirst second third 1 1 2 3 If you have a varying number of columns and don't care what the names are, you can make n names that look like temp1, temp2, ... tempn like this:> paste0("temp", 1:ncol(mydata))[1] "temp1" "temp2" "temp3" Obviously, you substitute in whatever your data.frame is called. So the code to add names for columns looks like:> colnames(mydata) <- paste0("temp", 1:ncol(mydata)) > mydatatemp1 temp2 temp3 1 1 2 3 -----Original Message----- From: R-help <r-help-bounces at r-project.org <mailto:r-help-bounces at r-project.org> > On Behalf Of Naresh Gurbuxani Sent: Monday, January 27, 2025 5:46 PM To: r-help at r-project.org <mailto:r-help at r-project.org> Subject: [R] R CMD check says no visible binding for global variable I have written a function which returns an SQL query result as a data.frame. Each column of data.frame is a variable not explicitly defined. For every column name, R CMD check says ?no visible binding for global variable <name>. Status: 1 NOTE Is it possible to tell R CMD check that these variables are OK? Thanks, Naresh Sent from my iPhone ______________________________________________ R-help at r-project.org <mailto:R-help at r-project.org> mailing list -- To UNSUBSCRIBE and more, see https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help <https://stat.ethz.ch/mailman/listinfo/r-help> &data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101270089%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ExT4UObp9q1CqqqUNyr9GdX3fs6UFoCIndD0UFdQ2bE%3D&reserved=0 PLEASE do read the posting guide https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.r-project.org%2Fposting-guide.html <https://www.r-project.org/posting-guide.html> &data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101299265%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=KHzs8stxNBdUeRR9LW8DdYICbzLU3wovaKNJBqL%2BBOY%3D&reserved=0 and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org <mailto:R-help at r-project.org> mailing list -- To UNSUBSCRIBE and more, see https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help <https://stat.ethz.ch/mailman/listinfo/r-help> &data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101312257%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ygouzLUqvgdAsZjnGVrFwzM93bYn%2Fbjevj5MyagGE04%3D&reserved=0 PLEASE do read the posting guide https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.r-project.org%2Fposting-guide.html <https://www.r-project.org/posting-guide.html> &data=05%7C02%7CJSorkin%40som.umaryland.edu%7C25e7bd61380147526b8108dd3f58dced%7C717009a620de461a88940312a395cac9%7C0%7C0%7C638736373101326801%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=kx%2FukXxxEEiVwui%2F6lIsA45q6Hiz97Qpj%2BwHi2eoSqA%3D&reserved=0 and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]]
Reasonably Related Threads
- R CMD check says no visible binding for global variable
- R CMD check says no visible binding for global variable
- R CMD check says no visible binding for global variable
- R CMD check says no visible binding for global variable
- R CMD check says no visible binding for global variable