我使用python包pymongo从mongodb数据库中检索数据.
>>> r = collection.find() # returns an object of class 'Cursor'
Run Code Online (Sandbox Code Playgroud)
然后我转换成一个列表
>>> l = list(r) # returns a 'list' of 'dict'
Run Code Online (Sandbox Code Playgroud)
这是print(l)返回的内容:
>>> [{u'date': datetime.datetime(2009, 11, 10, 10, 45), u'_id': 1, u'name': u'name1', u'value': 11},{u'date': datetime.datetime(2013, 11, 10, 10, 45), u'_id': 2, u'name': u'name2', u'value': 22}]
Run Code Online (Sandbox Code Playgroud)
现在我需要转换为JSON,以便我可以操作它.
>>> json.dumps(l)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 201, in encode
chunks = self.iterencode(o, _one_shot=True) …Run Code Online (Sandbox Code Playgroud) 我正在使用R包,其中有2个函数f1和f2(f2调用f1)
我希望覆盖函数f1.
由于R 2.15和包中命名空间的强制使用,如果我只是获取新函数,它确实可以在全局环境中使用(即在控制台中只调用f1(x)返回新结果).但是,调用f2仍将使用打包的函数f1.(因为命名空间修改了搜索路径,并按照"写入R扩展"教程中的说明对其进行了封装)
将f1替换为新命令的正确方法是什么?(除了再次构建包装!)这在几种情况下都很有用.例如,如果包中存在您尚未开发的错误.或者,如果您不想在日常开发过程中重新构建软件包.
我知道功能
assignInNamespace("f1",f1,ns="mypackage")
Run Code Online (Sandbox Code Playgroud)
但是,帮助页面?assignInNamespace有点令人讨厌,并且似乎不鼓励人们在不提供更多信息的情况下使用它,我在官方CRAN教程中找不到任何最佳实践建议.并在调用此函数后:
# Any of these 2 calls return the new function
mypackage::f1
getFromNamespace(x = "f1", envir = as.environment("package:mypackage"))
# while this one still returns the old packaged version
getFunction(name = "f1", where = as.environment("package:mypackage"))
Run Code Online (Sandbox Code Playgroud)
这非常令人不安.搜索路径如何受到影响?
现在我正在做一些丑陋的事情,比如修改lockEnvironment函数,这样library就不会锁定包命名空间,一旦我替换了f1,我可以在以后锁定它(这似乎不是一个好习惯)
所以基本上我有两个问题:
assignInNamespace在包命名空间(应该被锁定)的情况下究竟做了什么非常感谢您在那里分享您的经验.
编辑:对此问题感兴趣的人可能会发现此博客文章非常有趣.
time1 = as.POSIXlt("2010-07-01 16:00:00", tz="Europe/London")
time1
# [1] "2010-07-01 16:00:00 Europe/London"
Run Code Online (Sandbox Code Playgroud)
但
time2 = as.POSIXct("2010-07-01 16:00:00", tz="Europe/London")
time2
# [1] "2010-07-01 16:00:00 BST"
Run Code Online (Sandbox Code Playgroud)
为什么时区呈现不同?这对我很重要,因为我需要从我的约会时间中提取时区.
base::format(time1, format="%Z")
# [1] "BST"
base::format(time2, format="%Z")
# [1] "BST"
Run Code Online (Sandbox Code Playgroud)
英国拯救时间都给予同样的"BST"!
问题是"BST"不会被POSIXct/POSIXlt格式识别:
as.POSIXlt("2010-07-01 16:00:00", tz="BST")
# [1] "2010-07-01 16:00:00 BST"
# Warning messages:
# 1: In strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) :
# unknown timezone 'BST'
# 2: In structure(xx, class = c("POSIXct", "POSIXt"), tzone = tz) :
# unknown timezone 'BST'
# …Run Code Online (Sandbox Code Playgroud) 我想使用两个agruments函数'func'创建一个函数向量,例如这个:
func = function(number, coefficient) {
return(coefficient*number)
}
Run Code Online (Sandbox Code Playgroud)
这是我如何创建函数向量:
vector_of_functions = NULL
for (i in 1:4) {
vector_of_functions = c(vector_of_functions,
function(number) func(number=number, coefficient=i))
}
Run Code Online (Sandbox Code Playgroud)
我的问题是组成我的矢量的所有函数都是相同的,即使它们是i通过循环使用不同的创建的.它接缝是使用最后一个值i(这里是一个全局变量)来评估它们.
有人有想法吗?
我使用了很多软件包,我知道有些函数被掩盖了,因为它们存在于几个不同的软件包中.有没有办法获取重复函数列表(或掩码函数?)
理想的情况是拥有一个重复函数列表,并为每个函数列出它所在的包列表.
我有一个jenkins设置,有多个用户使用Active Directory插件登录.这很有用,这样每个用户都可以访问自己的任务.
但是,每个用户在本地网络上也有不同的权限,例如访问不同的文件夹等.我注意到,给每个任务的权限不是链接到用户,而是链接到作为服务运行的从属帐户.有没有办法改变它,以便在用户的凭证(以及因此权限)下在奴隶上执行任务?
谢谢
我有一个S4类,我想定义这些对象的线性组合.
是否可以在这个特定的类上发送*和+运行?
我的公司专门使用Windows机器,当我登录到Windows域时,它可以访问一些共享驱动器和数据库.现在我想在容器中运行R,例如按照教程 https://ropenscilabs.github.io/r-docker-tutorial/02-Launching-Docker.html
我的问题如下:有没有办法在这个容器中执行我的R脚本继承主机操作系统的权限?访问使用Windows身份验证的MSSQL数据库似乎特别棘手.....
最后,要包含一个文字 - ,将它放在第一个或最后一个(或者,仅对perl = TRUE,在它前面加一个反斜杠).
我无法理解之间的区别
grepl(pattern=paste("^thing1\\-",sep=""),x="thing1-thing2")
Run Code Online (Sandbox Code Playgroud)
和
grepl(pattern=paste("^thing1-",sep=""),x="thing1-thing2")
Run Code Online (Sandbox Code Playgroud)
两者都返回TRUE.我应该逃避还是不在这里?什么是最佳做法?
我目前正在使用此查询(在SQL Server中)每天计算唯一项目的数量:
SELECT Date, COUNT(DISTINCT item)
FROM myTable
GROUP BY Date
ORDER BY Date
Run Code Online (Sandbox Code Playgroud)
如何对此进行转换以获取过去3天(包括当天)中每个日期的唯一商品数量?
输出应该是一个包含2列的表:一列包含原始表中的所有日期.在第二列,我们有每个日期的唯一项目数.
例如,如果原始表是:
Date Item
01/01/2018 A
01/01/2018 B
02/01/2018 C
03/01/2018 C
04/01/2018 C
Run Code Online (Sandbox Code Playgroud)
根据我上面的查询,我目前获得每天的唯一计数:
Date count
01/01/2018 2
02/01/2018 1
03/01/2018 1
04/01/2018 1
Run Code Online (Sandbox Code Playgroud)
我希望得到3天滚动窗口的独特计数:
Date count
01/01/2018 2
02/01/2018 3 (because items ABC on 1st and 2nd Jan)
03/01/2018 3 (because items ABC on 1st,2nd,3rd Jan)
04/01/2018 1 (because only item C on 2nd,3rd,4th Jan)
Run Code Online (Sandbox Code Playgroud) r ×7
assign ×1
containers ×1
count ×1
docker ×1
duplicates ×1
hyphen ×1
jenkins ×1
mask ×1
mongodb ×1
namespaces ×1
package ×1
packages ×1
permissions ×1
posix ×1
pymongo ×1
python ×1
regex ×1
rpython ×1
s4 ×1
sql ×1
sql-server ×1
timezone ×1