亚马逊的EC2服务提供了各种Linux和Windows操作系统选择,但我还没有找到一种服务,为远程Mac OS X虚拟机提供类似的"按小时租用"服务.这样的服务存在吗?(iCloud看起来只是一个数据存储服务,而不是允许远程登录的服务等)
这种虚拟机服务对于在可再现的"中立"位置测试软件非常有用.
更新1:为了清楚起见,我指的是类似于EC2的按需或现场实例的服务,其中机器(或虚拟机)每小时租用,而不是涉及每月订阅的典型网络托管服务.正如@Erik指出的那样,该路线有几个不错的选择.一些人用"每小时"或"每小时费率"这样的条件搜索OS X主机的查询数量很少(基本上只是每小时维修的人工费),我倾向于认为这对于某些人来说不存在原因.如果确实如此,那么这样的公司准确地为这些查询做广告似乎是合理的.
更新2:我看到这个问题随着时间的推移会得到很多观点.如果有人遇到的情况发生变化,即有是这样的服务的供应商,请发表,我会接受的答案,而不是.
我有一个对象ggplot2
,比方说myPlot
,如何识别x和y轴的范围?
它似乎不是数据值范围的简单倍数,因为可以重新缩放绘图,修改轴的范围等等. findFn
(从sos
)和谷歌似乎并不被调高相关的结果,不是如何设置轴的范围等.
我试图找到一种简单的方法来使用像R中的Perl的散列函数(基本上是缓存),因为我打算进行Perl风格的散列并编写我自己的计算备忘录.然而,其他人已经打败了我,并有包装备忘.我越挖,越我发现,如memoise
和R.cache
,但差异不容易明确.另外,目前还不清楚如何使用Perl风格的哈希(或Python风格的词典)并编写一个自己的memoization,而不是使用hash
包,这似乎不是两个memoization包的基础.
由于我无法找到有关CRAN或其他地方的信息来区分选项,或许这应该是关于SO的社区维基问题:R中的记忆和缓存有哪些选项,它们的区别是什么?
作为比较的基础,这里是我找到的选项列表.此外,在我看来,所有都依赖于散列,所以我也会注意到散列选项.密钥/值存储在某种程度上是相关的,但是会打开关于数据库系统的大量蠕虫(例如BerkeleyDB,Redis,MemcacheDB和其他许多人).
它看起来像是:
这些是R对象外部存储的基本选项.
cacher
并提供一些有用功能的OmegaHat项目.pairlist
,但已被弃用.)虽然我最感兴趣的是了解选项,但我有两个基本用例:
这些真的出现了,因为我正在深入研究一些slooooow代码的分析,我真的只想计算简单的字符串,看看我是否可以通过memoization加速一些计算.能够散列输入值,即使我没有记忆,也会让我看看memoization是否有帮助.
注1:可重复研究的CRAN任务视图列出了几个软件包(cacher
和R.cache
),但没有详细说明使用选项.
注2:为了帮助其他人查找相关代码,这里有一些关于一些作者或包的注释.一些作者使用SO.:)
我在哪里可以获得已被归类为公司域中情绪的正面/负面的文档集?我想要一大堆文件,为公司提供评论,例如分析师和媒体提供的公司评论.
我发现有产品和电影评论的语料库.是否有业务领域的语料库,包括符合业务语言的公司评论?
nlp machine-learning text-analysis training-data sentiment-analysis
我正在寻找R /等效的linux/POSIX exit(n),它将使用退出代码n停止进程,向父进程发出错误信号.R有这样的设施吗?
我正在寻找一些相对简单的数据集来测试和比较人工神经网络的不同训练方法.我希望数据不需要太多的预处理就可以将其转换为输入和输出列表的输入格式(归一化为0-1).任何链接赞赏.
对于逻辑值向量,当一个位向量每个条目消耗1位时,为什么R会分配4个字节?(有关示例,请参阅此问题.)
现在,我意识到R还有助于存储NA
值,但是不能用额外的位向量来完成吗?换句话说,为什么仅仅使用廉价的两位数据结构就不够了?
对于它的价值,Matlab使用1个字节作为逻辑,但它不利于NA值.我不确定为什么MathWorks不满足于一位功能,更不用说两位数据结构了,但是他们有花哨的裤子营销人员...... [我会在这个问题上为所有它值得"两点"加牛奶.;-)]
更新1.我认为所提供的架构原因是有道理的,但这感觉有点事后.我没有检查32位或16位R来查看它们的逻辑有多大 - 这可以为这个想法提供一些支持.从R Internals手册中可以看出,逻辑向量(LGLSXP)和整数(INTSXP)在每个平台上都是32位.我可以理解整数的通用大小,与字大小无关.类似地,逻辑的存储似乎也与字大小无关.但它太大了.:)
另外,如果字大小参数如此强大,看到Matlab(我认为它是一个32位的Matlab)只消耗1个字节似乎很奇怪 - 我想知道MathWorks是否选择通过权衡编程复杂性来提高内存效率以及查找子词对象的一些其他开销.
此外,肯定还有其他选择:正如Brian Diggs所说,该bit
软件包有助于位向量,这对上述问题中的问题非常有用(通过从4字节logical
值转换为任务获得8X-10X的加速速度位向量).虽然访问存储器的速度很重要,但从信息理论的角度来看,移动30-31个额外的无信息位是浪费的.例如,可以使用类似于此处描述的整数的内存技巧- 获取一堆额外的内存(V单元),然后在位级处理事物(a la bit()
).为什么不这样做并NA
为长向量保存30位(值为1,为1 )?
如果我的RAM和计算速度受到布尔值的影响,我打算转而使用bit
,但这是因为在某些情况下节省97%的空间很重要.:)
我认为这个问题的答案将来自对R的设计或内部有更深入理解的人.最好的例子是Matlab对其逻辑使用不同的大小,在这种情况下,内存字大小不是答案.Python可能与R类似,因为它的价值.
短语的一个相关方法可能是:为什么LGLSXP
在所有平台上都会有4个字节?(CHARSXP
通常是较小的,也不会那么有用吗?为什么不进行更小的,只是过度分配?)(更新使用的想法CHARSXP
可能是假的,因为操作CHARSXP
不像整数那样有用如sum
,利用相同的数据结构作为字符可能节省空间,但将限制其现有的方法可能在其上进行操作.更合适的考虑因素是使用较小的整数,如下面讨论的).
更新2已经有慕名相对于一个怎样一些很好的和启发性的答案,应该执行布尔速度和编程效率的目标的检索和处理.我认为Tommy的答案特别合理,因为它在R中出现的原因似乎来自于两个前提:
为了支持对逻辑向量的添加(注意"逻辑"由编程语言/环境定义,并且与布尔值不同),最好通过重用代码来添加整数来实现.在R的情况下,整数消耗4个字节.在Matlab的情况下,最小的整数是1个字节(即int8
).这可以解释为什么不同的东西会为逻辑写作带来麻烦.[给那些不熟悉R,它支持上逻辑值的很多数值的操作,例如sum(myVector)
,mean(myVector)
等]
遗留支持使得除了R和S-Plus已经做了很长时间以外的其他事情变得非常困难.而且,我怀疑在S,S-Plus和R的早期,如果有人做了很多布尔操作,他们在C中做了它们,而不是试图用R中的逻辑做这么多工作.
对于如何实现更好的布尔处理的目的,其他答案是很棒的 - 不要天真地假设一个人可以得到任何单个位:加载一个字最有效,然后屏蔽不感兴趣的位,如德瓦尔描述过.如果为R的布尔操作编写专门的代码(例如我在交叉表中的问题),这是非常非常有用的建议:不要迭代位,而是在单词级别工作.
感谢所有人提供了一套非常全面的答案和见解.
[这个问题已在Spacedman的聊天室中得到解决,但我将在未来将其发布给其他人使用.]
我有一个函数,myFunc
它localFunc
在其中创建.(注意:这不是在一个软件包中,而是在全局环境中.)我想知道localFunc
搜索路径中存在哪些内容,因为我想通过它来分析它mvbutils::foodweb
.
这是一个例子:
myFunc <- function(){
require(data.table)
require(mvbutils)
localFunc <- function(x){
return(as.data.table(x))
}
vecPrune <- c("localFunc",ls("package:data.table"))
ix <- match("data.table",search())
tmpWeb <- foodweb(where = c(1,ix), prune = vecPrune, plotting = FALSE)
return(tmpWeb)
}
Run Code Online (Sandbox Code Playgroud)
但是,调用myFunc()
似乎并不表示localFunc
调用data.table()
.这是不正确的 - 是什么给出的?
(注意:where
参数指定搜索路径.)
更新1:正如Tommy和Spacedman指出的那样,诀窍是指定environment()
.电话foodweb()
指的是where = c(1, ix)
.该指数1
是一个错误.这是因为认为.GlobalEnv
通常(总是?)search()
向量中的第一项是搜索的正确位置.这是错误的.相反,应该参考environment()
,正确的呼叫在下面.(NB:ix
指定的位置data.table()
中的search()
输出). …
我想在Linux上将几个R库(*)从一个驱动器移动到另一个驱动器,并且想知道一个简单的移动是否可行且安全,或者我是否应该卸载并重新安装软件包.我意识到库的位置是.libPaths()
通过"R安装和管理"手册查找并查看了有关迁移库的信息,但没有看到推荐的过程.
我认为有三种选择:
remove.packages()
所有非基本软件包,然后重新安装install.packages(lib = "/path/to/new/location")
.mv
并使用符号链接指向新位置(最终删除符号链接)mv
在Linux命令移动目录批发和更新.Library.site
中R_HOME/etc/Rprofile.site
,如建议[R安装和管理手册选项#1是生硬的.选项#2应该有效,但似乎有点不合理.
#3是安全还是存在严重问题?我发现的问题是:目录权限以及任何包的设置存储绝对路径而不是相对路径(这似乎不健全且不必要)的可能性.
关于绝对路径的存储,我发现rJava
存储了R_HOME
一个名为的文件的位置run
.这不是一个问题库本身,但它是保持一个绝对路径的专用副本包(和好包在那)的一个指示.
(*)有几个库和许多包.当然,只移动库(目录),但包可能会受到影响.
更新1 /澄清:只是为了澄清:我只是迁移库,而不是更改R的版本或软件包的版本.更新R或包可以单独完成,但问题是移动库是否可行.似乎如果有必要更新或重新安装所有软件包以确保正确安装,那么这是一个类似于选项#1而不是选项#3的路径.
更新2:另一篇SO帖子的答案对于如何在升级时避免此问题有一些好主意.我不是升级R,但Dirk Eddelbuettel关于不在R的filetree中安装软件包的建议是明智的.
我正在从数据框和矩阵迁移到数据表,但还没有找到从数据表中提取唯一行的解决方案.[,J]
虽然我还没有在常见问题解答和介绍插图中找到答案,但我认为有一些我对符号的遗漏.如何在不转换回数据帧的情况下提取唯一行?
这是一个例子:
library(data.table)
set.seed(123)
a <- matrix(sample(2, 120, replace = TRUE), ncol = 3)
a <- as.data.frame(a)
b <- as.data.table(a)
# Confirm dimensionality
dim(a) # 40 3
dim(b) # 40 3
# Unique rows using all columns
dim(unique(a)) # 8 3
dim(unique(b)) # 34 3
# Unique rows using only a subset of columns
dim(unique(a[,c("V1","V2")])) # 4 2
dim(unique(b[,list(V1,V2)])) # 29 2
Run Code Online (Sandbox Code Playgroud)
相关问题:这种行为是否与Unix uniq
函数一样是未排序数据的结果?
r ×7
amazon-ec2 ×1
boolean ×1
caching ×1
data.table ×1
exit ×1
ggplot2 ×1
hash ×1
installation ×1
macos ×1
memoise ×1
memoization ×1
memory ×1
namespaces ×1
nlp ×1
r-faq ×1