小编Ken*_*ams的帖子

在R中子集ffdf对象

我正在使用R的ff包,我有一些ffdf我需要使用的对象(尺寸大约1.5M x 80).虽然我在高效的切片/切割操作中遇到了一些麻烦.

例如,我有两个名为"YEAR"和"AGE"的整数列,我想在YEAR是2005年时创建一个AGE表.

一种方法是:

ffwhich <- function(x, expr) {
  b <- bit(nrow(x))
  for(i in chunk(x)) b[i] <- eval(substitute(expr), x[i,])
  b
}
bw <- ffwhich(a.fdf, YEAR==1999)
answer <- table(a.fdf[bw, "AGE"])
Run Code Online (Sandbox Code Playgroud)

table()操作速度快,但建设的位向量是相当缓慢.任何人都有更好的建议吗?

r ff

10
推荐指数
1
解决办法
1876
查看次数

R中稀疏矩阵的SVD

我的MatrixR 稀疏,显然对我来说太大as.matrix()了(虽然它也不是超大).有as.matrix()问题的调用是在svd()函数内部,所以我想知道是否有人知道不需要先转换为密集矩阵的SVD的不同实现.

r sparse-matrix svd

10
推荐指数
3
解决办法
8483
查看次数

定期分析不规则时间序列

我有一个不规则的时间序列(xtsin R),我想应用一些时间窗口.例如,给定如下的时间序列,我想计算每个离散的3小时窗口中有多少观察数,例如2009-09-22 00:00:00:

library(lubridate)
s <- xts(c("OK", "Fail", "Service", "OK", "Service", "OK"),
         ymd_hms(c("2009-09-22 07:43:30", "2009-10-01 03:50:30",
                   "2009-10-01 08:45:00", "2009-10-01 09:48:15",
                   "2009-11-11 10:30:30", "2009-11-11 11:12:45")))
Run Code Online (Sandbox Code Playgroud)

我显然不能使用period.apply()split()不这样做,因为那些会省略没有观察的时期,我不能给它一个开始时间.

我想要的简单计数问题的输出(当然,我的实际任务对于每个段都更复杂!)如果我一次聚合3天就会是这样的:

2009-09-22    1
2009-09-25    0
2009-09-28    0
2009-10-01    3
2009-10-04    0
2009-10-07    0
2009-10-10    0
2009-10-13    0
2009-10-16    0
2009-10-19    0
2009-10-22    0
2009-10-25    0
2009-10-28    0
2009-10-31    0
2009-11-03    0
2009-11-06    0
2009-11-09    2
Run Code Online (Sandbox Code Playgroud)

谢谢你的指导.

r time-series xts

10
推荐指数
1
解决办法
1891
查看次数

Git部分提交分阶段更改

我的当前git status看起来像这样:

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   docs/file3.org
#       modified:   src/main/R/lib.R
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   docs/file3.org
#       modified:   src/main/R/lib.R
Run Code Online (Sandbox Code Playgroud)

我想首先将阶段性更改提交docs/file3.org,然后再进行其他阶段性更改.但是,如果我这样做git commit -m '...' docs/file3.org,它将提交对该文件的分阶段和非分阶段更改.

是否有捷径可寻?或者我是否需要进行未stash分级的更改,取消其中一个文件,提交另一个,重新设置,提交和stash pop

git

10
推荐指数
2
解决办法
8562
查看次数

自定义 git“bang”别名的 Zsh 完成 - Git 分支名称

我有一个 Git 别名update,我想为其配备分支名称完成功能。别名定义如下:

[alias]
        update = "!f() { git push . origin/$1:$1; }; f"
Run Code Online (Sandbox Code Playgroud)

(它使用其上游版本更新本地跟踪分支,而无需检查该分支。不过,对于特定问题并不重要。)

我希望该命令为其$1参数补全现有的分支名称。我知道我可以定义一个调用_git-update来控制完成的函数,但是我缺少一些使其工作的部分:

_git-update ()
{
  ***some-function-here*** "$(__git_branch_names)"
}
Run Code Online (Sandbox Code Playgroud)

我正在使用安装在 OS X 上的完成brew install zsh-completions,这是在https://github.com/zsh-users/zsh-completions设置的。

(这个问题直接类似于/sf/answers/2891556601/,但针对 Zsh 而不是 Bash。)

git zsh tab-completion zsh-completion git-alias

10
推荐指数
1
解决办法
578
查看次数

R Description文件中的“存储库:”字段

问题:Repository:打包DESCRIPTION文件中字段的目的和来源是什么?

官方文件中的DESCRIPTION文件中似乎没有提到它,在Hadley的书中也没有提到它。它似乎是在CRAN上传期间自动填充的-例如,它不在dplyr原始的description源中,但在CRAN的tarball Description中存在:

...
Maintainer: Hadley Wickham <hadley@rstudio.com>
Repository: CRAN
Date/Publication: 2019-05-14 12:20:03 UTC
Run Code Online (Sandbox Code Playgroud)

背景:我问,因为packrat似乎是使用此字段的存在/不存在来确定是否可以在某个位置的存储库中找到软件包-如果找不到,则需要您手动下载。对于在类似CRAN的本地存储库中托管的本地开发的软件包,这是一个问题。

我们可以开始将Repository:字段添加到我们的本地包中,但这对于所有以前的版本来说都是很痛苦的事情,它会弄乱他们的tarball校验和,等等。在不了解其用途的情况下,我不想这样做。

metadata r repository cran packrat

10
推荐指数
1
解决办法
96
查看次数

ggplot - 按功能输出的方面

我不确定如何通过对象data元素中的数据函数来进行研究ggplot.在下面的玩具示例中,我想要做的是这样的:

df <- data.frame(x=1:8, y=runif(8), z=8:1)
ggplot(df, aes(x=x, y=y)) + geom_point() + facet_wrap( ~ (z %% 2))
Run Code Online (Sandbox Code Playgroud)

但这给出了错误:Error in layout_base(data, vars, drop = drop) : At least one layer must contain all variables used for facetting.

我可以通过转换数据框来实现所需的结果:

ggplot(transform(df, z=z%%2), aes(x=x, y=y)) + geom_point() + facet_wrap( ~ z)
Run Code Online (Sandbox Code Playgroud)

但通常不希望使用这样的转换,例如,如果我已经获得了一个ggplot对象,并且我想为它添加一些特殊的方面.

r facet ggplot2

9
推荐指数
1
解决办法
1119
查看次数

用于CRAN包的Sonatype Nexus代理?

我们的组织使用Sonatype Nexus来管理工件,无论它们是我们开发的内部托管的东西,还是Apache或类似的其他存储库的代理.大多数东西都是基于JAR的.

我的小组在R中完成了大部分工作,我们想知道1)在Nexus中将内部代码部署为R包,以及2)在Nexus中为CRAN镜像创建代理是否有意义.我想这需要一些胶水代码,但我对Nexus不太满意,所以我不确定那会是什么样子.理想情况下,我们可以直接点击Nexus来安装R软件包,而不是先下载并手动安装.

有人有建议或先例吗?

r nexus sonatype cran

9
推荐指数
1
解决办法
1316
查看次数

readRDS()加载额外的包

在什么情况下readRDS()R 中的函数尝试加载包/命名空间?我很惊讶在新的R会议中看到以下内容:

> loadedNamespaces()
[1] "base"      "datasets"  "graphics"  "grDevices" "methods"   "stats"    
[7] "tools"     "utils"    
> x <- readRDS('../../../../data/models/my_model.rds')
There were 19 warnings (use warnings() to see them)
> loadedNamespaces()
 [1] "base"         "class"        "colorspace"   "data.table"  
 [5] "datasets"     "dichromat"    "e1071"        "earth"       
 [9] "evaluate"     "fields"       "formatR"      "gbm"         
[13] "ggthemes"     "graphics"     "grDevices"    "grid"        
[17] "Iso"          "knitr"        "labeling"     "lattice"     
[21] "lubridate"    "MASS"         "methods"      "munsell"     
[25] "plotmo"       "plyr"         "proto"        "quantreg"    
[29] "randomForest" "RColorBrewer" "reshape2"     "rJava"       
[33] "scales"       "spam"         "SparseM"      "splines"     
[37] "stats"        "stringr"      "survival" …
Run Code Online (Sandbox Code Playgroud)

serialization r

9
推荐指数
1
解决办法
1002
查看次数

Neo4j导出和导入数据

有没有一种方法可以使用Neo4j Java API将一些数据从一个数据库迁移到另一个数据库?我的用例是将几千个节点加载到一个临时数据库中,进行一系列转换,然后将结果导出到主数据库并删除临时数据库.

我不想破坏目标数据库中的数据,这是一个附加过程.我在网上看到很多人(例如这里)说"只是将数据目录复制到新位置",但当然这会破坏目的地.

更新 - 我试验过neo4j-shell -path tmpDir -c "DUMP MATCH n RETURN n;" | neo4j-shell -path dbDir -file -,但它真的非常慢.生成输出似乎足够快,但即使在一个新的空数据库中,它仍然是冰冷的.

java import export neo4j

9
推荐指数
1
解决办法
8477
查看次数