在 R 中,大多数语句都可以写成函数调用。例如...
for (ii in 1:10) print(ii)
Run Code Online (Sandbox Code Playgroud)
可以写成
`for`(ii, 1:10, print(ii))
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用这种方法编写函数时......
# normal approach
function (a = 1) 2
# call approach
`function`(pairlist(a = 1), 2)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:“函数”的形式参数列表无效。这似乎是指第一个参数(配对列表)。
是否可以以这种方式直接定义一个函数,而无需将其包装在替代品中?
一些搜索发现了这个电子邮件线程,它提出了 4 种方法,但没有一个直接调用“`function`”。
当我下载这个示例数据库,AdventureWorksLT2012_Data,并尝试访问sql炼金术中的table_names时,通过
from sqlalchemy import create_engine
engine = create_engine("mssql+pyodbc://sa:PASSWORD_HERE@localhost:1433/AdventureWorksLT?driver=FreeTDS")
engine.table_names()
Run Code Online (Sandbox Code Playgroud)
我得到['BuildVersion', 'ErrorLog'].但是,这是数据库中缺少的表.
例如,执行此查询会给出预期的表名...
rs = engine.execute("SELECT name FROM sys.Tables")
[row['name'] for row in rs]
Run Code Online (Sandbox Code Playgroud)
我明白了
['BuildVersion', 'Address', 'Customer', 'CustomerAddress', 'Product', 'ProductCategory', 'ProductDescription', 'ProductModel', 'ProductModelProductDescription', 'SalesOrderDetail', 'SalesOrderHeader', 'ErrorLog']
Run Code Online (Sandbox Code Playgroud)
这是一个错误,还是我忽略了什么?如果我创建一个新数据库,以及具有相同名称的表,则按engine.table_names()预期工作.