Tag: r

在升级到OSX Yosemite后,RStudio / R中的rJava加载错误

我最近从OSX Mountain Lion升级到优胜美地,从3.1.3升级到3.2。 升级完成后立即打开R或RStudio,弹出消息说我需要安装Java 6.另外,加载rJava或任何依赖rJava的软件包(例如xlsx )会导致RStudio崩溃(R当我尝试通过直接打开R.app时也崩溃了)。 在堆栈溢出和其他地方(更多细节见下文)发现一些修复后,我在加载rJava或任何依赖rJava包不再导致R崩溃,但导致以下错误的一点: library(rJava) Error : .onLoad failed in loadNamespace() for 'rJava', details: call: dyn.load(file, DLLpath = DLLpath, …) error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so': dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so Reason: image not found Error: package or namespace load failed for 'rJava' 但是,如果我从命令行调用R,然后加载rJava或任何依赖rJava包,它似乎工作(或至少我没有得到任何错误信息)。 我已经尝试了一些不同的尝试修复,其中一些修复了几次,并且不能完全记得我按照什么顺序做了什么(没有意识到这将是一个恶作剧,并没有真正跟踪) ,但这是它的要点: 将以下内容添加到我的.bash_profile […]

内存管理/不能分配大小为n的矢量Mb

我遇到了试图在R中使用大对象的问题。例如: > memory.limit(4000) > a = matrix(NA, 1500000, 60) > a = matrix(NA, 2500000, 60) > a = matrix(NA, 3500000, 60) Error: cannot allocate vector of size 801.1 Mb > a = matrix(NA, 2500000, 60) Error: cannot allocate vector of size 572.2 Mb # Can't go smaller anymore > rm(list=ls(all=TRUE)) > a = matrix(NA, 3500000, […]

将一个矢量拆分成R中的块

我不得不在R中将一个向量分成n个相同大小的块。我找不到任何基本函数来做到这一点。 另外谷歌没有让我到任何地方。 所以这就是我想出来的,希望它能帮助某个地方的某个地方。 x <- 1:10 n <- 3 chunk <- function(x,n) split(x, factor(sort(rank(x)%%n))) chunk(x,n) $`0` [1] 1 2 3 $`1` [1] 4 5 6 7 $`2` [1] 8 9 10 任何意见,建议或改进,真的欢迎和赞赏。 干杯,塞巴斯蒂安

如何修剪R中的前导和尾随空白?

我在data.frame中引入和尾随空白有一些麻烦。 例如,我喜欢根据一定的条件来查看data.frame中的特定row : > myDummy[myDummy$country == c("Austria"),c(1,2,3:7,19)] [1] codeHelper country dummyLI dummyLMI dummyUMI [6] dummyHInonOECD dummyHIOECD dummyOECD <0 rows> (or 0-length row.names) 我想知道为什么我没有得到预期的产出,因为奥地利明显存在于我的数据data.frame 。 查看我的代码历史记录,并试图找出哪里出了错我试过: > myDummy[myDummy$country == c("Austria "),c(1,2,3:7,19)] codeHelper country dummyLI dummyLMI dummyUMI dummyHInonOECD dummyHIOECD 18 AUT Austria 0 0 0 0 1 dummyOECD 18 1 所有我在命令中改变的是奥地利之后的一个额外的空白。 显然会出现更多烦人的问题。 例如,当我喜欢根据国家/地区栏合并两个框架。 一个数据data.frame使用"Austria "而另一个框架使用"Austria" 。 匹配不起作用。 […]

统计每个组的观察值/行数,并将结果添加到数据帧

说我有一个data.frame对象: df <- data.frame(name=c('black','black','black','red','red'), type=c('chair','chair','sofa','sofa','plate'), num=c(4,5,12,4,3)) 现在我要计算每个name和type组合的观察次数。 这可以这样做: table(df[ , c("name","type")]) 或者也可能与plyr ,(虽然我不知道如何)。 但是,如何将结果合并到原始数据框中呢? 所以结果将如下所示: df # name type num count # 1 black chair 4 2 # 2 black chair 5 2 # 3 black sofa 12 1 # 4 red sofa 4 1 # 5 red plate 3 1 现在count存储汇总的结果。 plyr的解决方案也很有趣,但是我想知道如何用base R来完成。

当两行数据帧(rbind)有不同的列组合时,组合两个数据帧

是否有可能绑定两个没有相同的列的数据框? 我希望保留绑定后不匹配的列。

如何在运行中命名变量?

是否有可能在飞行中创建新的变量名称? 我想从列表中读取数据框到最后带有数字的新变量。 像orca1,orca2,orca3 … 如果我尝试类似的东西 paste("orca",i,sep="")=list_name[[i]] 我得到这个错误 target of assignment expands to non-language object 有没有其他的方法呢?

由R包调用的Fortran代码仅在Linux上导致段错误崩溃

我正在尝试使用smwrQW R软件包。 我可以让它在Windows机器上工作( example("censReg", "smwrQW") )。 但是,在Linux机器上运行相同的代码会导致我立即发生段错误。 我相信我已经跟踪到以下行的错误。 您应该能够使用Docker和以下命令重现此行为: docker pull rocker/tidyverse docker run -it rocker/tidyverse /bin/bash sudo apt-get install ed Rscript -e "devtools::install_github('USGS-R/smwrBase')" Rscript -e "devtools::install_github('USGS-R/smwrGraphs')" Rscript -e "devtools::install_github('USGS-R/smwrStats')" Rscript -e "devtools::install_github('USGS-R/smwrQW')" Rscript -e "example('censReg', package = 'smwrQW')" Docker版本的gfortran(6.3.0)与RTools版本之间不匹配是否导致问题? 见http://www.thecoatlessprofessor.com/programming/rcpp-rcpparmadillo-and-os-x-mavericks-lgfortran-and-lquadmath-error/#the-solution 我遇到了两个令人费解的怪癖。 首先,如果我在上面链接的那一行之前设置了一个断点( browser() ),那么就没有错误。 其次,Travis的构建似乎已经过去了。

使用docker文件安装R包

我已经在我的docker文件中使用下面的行安装R. 请建议如何指定现在要安装在我的泊坞窗文件中的包。 RUN yum -y install R-core R-devel 我正在做这样的事情: RUN R -e "install.packages('methods',dependencies=TRUE, repos='http://cran.rstudio.com/')"\ && R -e "install.packages('jsonlite',dependencies=TRUE, repos='http://cran.rstudio.com/')" \ && R -e "install.packages('tseries',dependencies=TRUE, repos='http://cran.rstudio.com/')" 这是正确的方法吗?