小编JD *_*ong的帖子

用R控制格子图中的面板数量

如何使用晶格限制单个页面上显示的面板数量?我正在绘制多个状态的回归结果,并将其中的50个放在一个页面上,这使得它们不可读.我想将输出限制为4宽,并根据需要增加高度.

这是我的格子代码:

xyplot(Predicted_value + Actual_value ~ x_value | State_CD, data=dd)
Run Code Online (Sandbox Code Playgroud)

State_CD有50个不同的值

plot r lattice

5
推荐指数
1
解决办法
2000
查看次数

R包中的rJava类路径...适用于某些系统......而不适用于其他系统

我已经为R构建了一个包,它将R包装在一些Java类中.在我的开发笔记本电脑(Ubuntu)上,这个软件包加载正常,效果很好.在另外两台机器(一台Ubuntu,一台Debian)上,我试图使用这个包,并且.jpackage()调用没有设置类路径.

所有三台机器都运行R 2.12.1和rJava .8-8,我认为这是最新的.

整个软件包都在谷歌代码上,但这里是zzz.R文件的内容,它用于在一台机器上设置类路径,但不在其他机器上设置类路径:

##' @import rJava
.onLoad <- function(lib, pkg) {
    pathToSdk <- paste(system.file(package = "GSRadR") , "/gsrad_sample/lib/", sep="")

    jarPaths <- c(paste(pathToSdk, "clima_core-1.0.0.jar", sep=""),
                  paste(pathToSdk, "clima_GSRAD-1.0.0.jar", sep=""),
                  paste(pathToSdk, "colt-1.0.jar", sep=""),
                  paste(pathToSdk, "commons-lang-2.0.jar", sep=""),
                  paste(pathToSdk, "junit-3.8.1.jar", sep=""),
                  paste(pathToSdk, "log4j-1.2.8.jar", sep=""),
                  paste(pathToSdk, "xqore.jar", sep="")
                  )    
    .jpackage(pkg, morePaths=jarPaths)
    attach( javaImport( c("java.lang", "java.io")))
    packageStartupMessage( paste( "GSRadR loaded. The classpath is: ", paste(.jclassPath(), collapse=" " ) ) )        
}
Run Code Online (Sandbox Code Playgroud)

在我的笔记本电脑上返回以下内容:

> require(GSRadR)
Loading required package: GSRadR
Loading required package: …
Run Code Online (Sandbox Code Playgroud)

r classpath rjava

5
推荐指数
1
解决办法
3714
查看次数

基于另一个矩阵对一个矩阵排序

我试图将一个矩阵的行放在与相同维度的另一个矩阵的行相同的顺序中.但是,如果没有显式循环,我无法弄清楚如何做到这一点.似乎我应该能够通过子集和应用或Map功能来实现这一点,但我无法弄清楚如何做到这一点.

这是一个玩具示例:

sortMe <- matrix(rnorm(6), ncol=2)
sortBy <- matrix(c(2,1,3, 1,3,2), ncol=2)

sorted <- sortMe 
for (i in 1:ncol(sortMe)) {
  sorted[,i] <- sortMe[,i][sortBy[,i]]
}
Run Code Online (Sandbox Code Playgroud)

使用此方法,结果sorted矩阵包含sortMe以与sortBy矩阵相同的顺序排序的值.知道如何在没有循环的情况下做到这一点吗?

r matrix

5
推荐指数
1
解决办法
2358
查看次数

将字符串转换为整数 pandas 数据帧索引

我有一个带有多索引的 pandas 数据框。不幸的是,其中一个索引给出了年份作为字符串

例如“2010 年”、“2011 年”

我如何将它们转换为整数?

更具体地说

MultiIndex(levels=[[u'2010', u'2011'], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]],
       labels=[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
 10, 11, 12, , ...]], names=[u'Year', u'Month'])
Run Code Online (Sandbox Code Playgroud)

df_cbs_prelim_total.index.set_levels(df_cbs_prelim_total.index.get_level_values(0).astype('int'))
Run Code Online (Sandbox Code Playgroud)

似乎做到了,但还不到位。有什么正确的方法可以改变它们吗?

干杯,迈克

dataframe pandas

5
推荐指数
1
解决办法
5433
查看次数

我正在使用set.seed()但在每次运行中获得不同的答案

我想如果我set.seed()在函数内部使用,那么每次运行该函数时都会使用相同的种子,我会获得相同的准随机输出.请看以下示例:

my_fun <- function(n, v1, v2){
  set.seed = 42
  return(runif(n, v1, v2))
}
my_fun(1,2,3)
#> [1] 2.078126
my_fun(1,2,3)
#> [1] 2.918556
my_fun(1,2,3)
#> [1] 2.189768
Run Code Online (Sandbox Code Playgroud)

每次我使用相同的输入运行该函数时,我希望得到相同的结果.你能告诉我为什么不这样做吗?

r

5
推荐指数
1
解决办法
439
查看次数

直接用read_csv从readr读取zip文件,产生奇怪的结果

我正在尝试直接从URL读取以获取包含管道分隔文本文件的zip文件.如果我下载文件,然后使用read_csv从磁盘读取它,我没有问题.但是,如果我尝试使用read_csv直接读取URL,我会在生成的df中得到垃圾.我可以通过下载编码然后阅读来解决这个问题.但它似乎应该直接起作用.有什么线索在这里发生了什么?

library(readr)
url <- "https://www.rma.usda.gov/data/sob/sccc/sobcov_2018.zip"
df <- read_delim(url, delim='|',
                 col_names = c('year','stFips','stAbbr','coFips','coName',
                               'cropCd','cropName','planCd','planAbbr','coverCat',
                               'deliveryType','covLevel','policyCount','policyPremCount','policyIndemCount',
                               'unitsReportingPrem', 'indemCount','quantType', 'quantNet', 'companionAcres',
                               'liab','prem','subsidy','indem', 'lossRatio'))
#> Parsed with column specification:
#> cols(
#>   .default = col_character()
#> )
#> See spec(...) for full column specifications.
#> Warning in rbind(names(probs), probs_f): number of columns of result is not
#> a multiple of vector length (arg 1)
#> Warning: 7908 parsing failures.
#> row # A tibble: 5 x 5 col     row col …
Run Code Online (Sandbox Code Playgroud)

r readr

5
推荐指数
1
解决办法
534
查看次数

将ggplot2 stat_function添加到现有图形中

我有一个图表,我想在图表上叠加一个功能表格.看起来很直接,但我错过了一些东西.这是我stat_function用来尝试添加f1到图表的示例数据和插图:

library(ggplot2)
sample_data <- data.frame(rate  = c(0.514492753623188, 0.553072625698324, 0.656527249683143, 0.675694939415538,
                                    0.68681076312307, 0.715657311669128, 0.792349726775956), 
                          level = c(0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85) )

f1 <- function(x) pbeta(x, shape1=1.01, shape2=.9 ) * 100

g <- ggplot() +
  geom_line(aes(y = rate*100 , x = level), 
            data = sample_data, stat="identity") +
  stat_function(fun = f1) 
g
Run Code Online (Sandbox Code Playgroud)

如你所见,f1线路不在那里.

因此,作为替代方案,我可以将点添加到初始data.frame,然后使用geom_line以下示例说明:

## add f1 to data.frame
sample_data$f1 <- f1(sample_data$level )

g <- ggplot() +
  geom_line(aes(y = rate*100 , x …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
60
查看次数

(误)理解`xts`中的`first`

我正在尝试使用该xts函数first来查看我的xts对象的第一周或第二周.我以前用过first,它表现得像预期的那样.这是一个表现良好的例子:

library(quantmod)                                                                                
getSymbols('IBM', from='2000-01-01', to='2000-12-31')                                            
first(IBM, "week")  

#>            IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume IBM.Adjusted
#> 2000-01-03 112.4375 116.0000 111.875  116.0000   10347700     81.97214
#> 2000-01-04 114.0000 114.5000 110.875  112.0625    8227800     79.18969
#> 2000-01-05 112.9375 119.7500 112.125  116.0000   12733200     81.97214
#> 2000-01-06 118.0000 118.9375 113.500  114.0000    7971900     80.55885
#> 2000-01-07 117.2500 117.9375 110.625  113.5000   11856700     80.20554

first(IBM, "2 weeks")                                                                            
#>            IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume IBM.Adjusted
#> 2000-01-03 112.4375 116.0000 111.875  116.0000   10347700     81.97214 …
Run Code Online (Sandbox Code Playgroud)

5
推荐指数
1
解决办法
61
查看次数

将 R Markdown 渲染为 MS Word 时页面上 flextable 的对齐方式

flextable在我的 R Markdown 文档中自定义表格时,我一直很幸运。但是,我正在努力更改页面上表格的位置。默认情况下,表格似乎以页面为中心。我希望我的一张表格与左边距对齐。我怎么做?

r flextable

5
推荐指数
1
解决办法
1934
查看次数

在 Linux 中如何更改 R 中的默认文本编辑器?

我在 Linux 中使用 R 进行编程,每次我想通过键入来编辑函数时

fix(FunctioName)
Run Code Online (Sandbox Code Playgroud)

使用了 VI 编辑器,对我来说,它不是那么方便,我想更改它并使其成为另一个,例如 nano。我正在连接到我们学校的服务器,所以我只有外壳,没有图形界面。

先感谢您。

linux vi r

4
推荐指数
1
解决办法
1570
查看次数

标签 统计

r ×8

classpath ×1

dataframe ×1

flextable ×1

ggplot2 ×1

lattice ×1

linux ×1

matrix ×1

pandas ×1

plot ×1

readr ×1

rjava ×1

vi ×1