I have created a package in R. The default hello.R file created by RStudio contains only the code below.
# Test function
foo <- function(x, y){
  # Create data table
  dt <- data.table::data.table(x = x, y = y)
  #Check
  print(data.table::is.data.table(dt))
  print(dt)
  print(dt[, .(x)])
}
I then run devtools::load_all() to load the package and try running this function as follows:
foo(1:10, 1:10)
# [1] TRUE
#     x  y
# 1:  1  1
# 2:  2  2
# 3:  3  3
# 4:  4  4
# 5:  5  5
# 6:  6  6
# 7:  7  7
# 8:  8  8
# 9:  9  9
# 10: 10 10
# Error in .(x) : could not find function "." 
So, TRUE indicates that it creates a data.table, the data.table is printed and looks good, but it fails when I try to use . to see just one column (i.e., x). 
Okay, perhaps my package doesn't know about . because data.table isn't loaded, so I'll use list() instead which is equivalent to .() according to the documentation.
# Test function
foo <- function(x, y){
  # Create data table
  dt <- data.table::data.table(x = x, y = y)
  #Check
  print(data.table::is.data.table(dt))
  print(dt)
  print(dt[, list(x)])
}
and I run devtools::load_all() then call the function as before.
foo(1:10, 1:10)
# [1] TRUE
#     x  y
# 1:  1  1
# 2:  2  2
# 3:  3  3
# 4:  4  4
# 5:  5  5
# 6:  6  6
# 7:  7  7
# 8:  8  8
# 9:  9  9
# 10: 10 10
# Error in .subset(x, j) : invalid subscript type 'list' 
Hmmm. Weird, as list is a base function so clearly the package knows about it. Why can I not select a column using the usual data.table syntax from within my R package?
