小编Álv*_*gas的帖子

提取运算符“$( )”和非语法名称

假设我有以下列表(注意非语法名称的用法)

list <- list(A  = c(1,2,3),
            `2` = c(7,8,9))
Run Code Online (Sandbox Code Playgroud)

因此,以下两种解析列表的方法有效:

`$`(list,A)
## [1] 1 2 3

`$`(list,`2`)
## [1] 7 8 9
Run Code Online (Sandbox Code Playgroud)

然而,这种方式继续失败。

id <- 2 
`$`(list,id)
## NULL
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么最后一种方法不起作用以及我该如何解决它吗?谢谢。

scope r function list

7
推荐指数
1
解决办法
239
查看次数

Julia 中的“闭包”是什么?

我正在学习如何编写最大似然实现Julia,目前,我正在关注此材料(强烈推荐顺便说一句!)。\n所以问题是我不完全理解Julia 中的闭包是什么,也不知道什么时候应该实际使用它。即使在阅读了官方文档之后,这个概念对我来说仍然有点模糊。

\n

例如,在教程中,我提到作者将对数似然函数定义为:

\n
function log_likelihood(X, y, \xce\xb2)\n    ll = 0.0\n    @inbounds for i in eachindex(y)\n        z\xe1\xb5\xa2 = dot(X[i, :], \xce\xb2)\n        c = -log1pexp(-z\xe1\xb5\xa2) # Conceptually equivalent to log(1 / (1 + exp(-z\xe1\xb5\xa2))) == -log(1 + exp(-z\xe1\xb5\xa2))\n        ll += y[i] * c + (1 - y[i]) * (-z\xe1\xb5\xa2 + c) # Conceptually equivalent to log(exp(-z\xe1\xb5\xa2) / (1 + exp(-z\xe1\xb5\xa2)))\n    end\n    ll\nend\n
Run Code Online (Sandbox Code Playgroud)\n

不过,后来他声称

\n
\n

我们写的对数似然是数据和参数的函数,但从数学上讲它应该只取决于参数。除了创建新函数的数学原因之外,我们只需要参数的函数,因为Optim 中的优化算法假设输入具有该属性。为了实现这两个目标,我们将构建一个 …

closures function julia

6
推荐指数
1
解决办法
1698
查看次数

按组镜像直方图

我想使用 ggplot按组获得镜像直方图,如下图所示。

library(ggplot2)
data2 <- data.frame(
  type = c( rep("Top 1", n_segment),
            rep("Top 2", n_segment),
            rep("Bottom 1", n_segment),
            rep("Bottom 2", n_segment)),
  value = c( rnorm(n_segment, mean=5),
             rnorm(n_segment, mean=12),
             rnorm(n_segment, mean=-5),
             rnorm(n_segment, mean=-12))
)

# Represent it
data2 %>%
  ggplot( aes(x=value, fill=type)) +
  geom_density( color="#e9ecef", alpha=0.6) 

Run Code Online (Sandbox Code Playgroud)

现在我得到这个:

在此输入图像描述

但我想将它们镜像如下: 在此输入图像描述

visualization r histogram ggplot2 tidyverse

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

在 Julia 中使用布尔值解析矩阵

因此,我尝试使用布尔值从矩阵中选择元素,但我偶然发现了我无法理解的这种行为。\n考虑以下矩阵。

\n
id = [1 1 2 2]\nx1 = [1 2 3 4 ]\nx2 = [5 6 7 8 ]\nX = transpose([x1 ; x2 ])\n
Run Code Online (Sandbox Code Playgroud)\n

X现在我想选择对应于 的所有元素id==1。这是一种方法。

\n
X[ [true ,true, false ,false ] , : ]\n# 2\xc3\x972 Matrix{Int64}:\n# 1  5\n# 2  6\n\n
Run Code Online (Sandbox Code Playgroud)\n

但是,当我使用逻辑条件创建布尔值时,它无法产生所需的结果。

\n
select_row = isone.(transpose(id).==1) \nX[ select_row , : ]\n# 2\xc3\x971 Matrix{Int64}:\n# 1\n# 2\n
Run Code Online (Sandbox Code Playgroud)\n

知道发生了什么吗?先感谢您。

\n

boolean vector matrix julia

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

相当于 Julia 中用于调试的 Rstudio `browser()` 函数

我想知道是否有与RStudiobrowser()中可用的语句等效的语句用于 Julia 的调试目的(我目前正在使用 Juno IDE)。

R函数在被调用时browser()停止执行并调用 an 。environment browser因此,原则上,我们可以将browser()代码中的任何位置放置在该特定行中,并查看当时环境中存储的内容,这对于调试目的非常有用。

例如,下面的代码将在 时停止i>3。因此,这正是我们将environment browser在 RStudio 中看到的内容,我们将i=4在代码中观察到这一点。

for (i in 1:5) {
  print(i)  
  if (i>3) {
    browser()
  }
}
[1] 1
[1] 2
[1] 3
[1] 4
Called from: eval(ei, envir)
Browse[1]> 
Run Code Online (Sandbox Code Playgroud)

r rstudio julia juno-ide

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

正确解析 R 中的“公式”对象

如何fo正确解析 R 公式对象 ( )(即解析时不将其转换为字符串)?

假设我有以下内容:

## Creating a formula object
fo <- y ~ x1 + x2 | 0 + z1 + z2 + z3 + z4 + z5

class(fo)
##[1] "formula"

typeof(fo)
##[1] "language"

strsplit(fo, split='|', fixed=TRUE)
##Error in strsplit(fo, split = "|", fixed = TRUE) : non-character argument
Run Code Online (Sandbox Code Playgroud)

希望我想将其解析为三个原子向量:

  1. 因变量:c("y").
  2. 回归量:c("x1", "x2").
  3. 其他:(c("z1", "z2", "z3", "z4", "z5")不包括0)。

string parsing r formula

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

在 Julia 中比较两个向量的元素是否相等

我试图在应用于两个向量时获得与Rs相同的行为==,以比较向量中的每个元素。

a <-  c(1,2 ,3 )
b <-  c(1, 2 ,5 )
a==b
#[1]  TRUE  TRUE FALSE
Run Code Online (Sandbox Code Playgroud)

我朱莉娅,我想出了一种非常笨拙的方法,但现在我想知道是否有最简单的方法。

a = [1 2 3 ]
b = [1 2 5 ]
a == b  #this does not return what I want.
#false  

rows_a =size(a)[2]
equal_terms =ones(rows_a)
for i in  1:rows_a 
        equal_terms[i] =(a[i] == b[i])
end
equal_terms
#1.0
#1.0
#0.0
Run Code Online (Sandbox Code Playgroud)

先感谢您。

r vector julia

3
推荐指数
1
解决办法
981
查看次数

使用 R 创建完全对立的绘图

假设我有矩阵d,它是二维(列)采样过程的两种不同实现(行)的结果。我想开发一个函数,从这个原始矩阵中创建完全对立的绘图。

c1 <- c(0.1, 0.6);c2 <- c(0.3, 0.8);d <- rbind(c1,c2)
#    [,1] [,2]
# c1  0.1  0.6
# c2  0.3  0.8
Run Code Online (Sandbox Code Playgroud)

也就是说,例如,对于第一个实现(c(0.1, 0.6)),我想获得这个随机绘制在二维上的镜像,它生成了(2^2)如下 4 种可能的组合:

d1_anthi = matrix( 
  c(   d[1,1] ,   d[1,2],
    1 - d[1,1],   d[1,2],
       d[1,1] , 1 - d[1,2],
    1 - d[1,1], 1 - d[1,2]), nrow=2,ncol=4)
t(d1_anthi)
#      [,1] [,2]
# [1,]  0.1  0.6
# [2,]  0.9  0.6
# [3,]  0.1  0.4
# [4,]  0.9  0.4
Run Code Online (Sandbox Code Playgroud)

类似地,对于第二种,实现结果如下:

d2_anthi = matrix( 
  c(   d[2,1] …
Run Code Online (Sandbox Code Playgroud)

combinations loops r matrix dataframe

2
推荐指数
1
解决办法
56
查看次数

如何展平嵌套列表保持内部结构

假设我有以下列表 ( result),它是一个嵌套列表,用于从模型中捕获信息:参数 ( betas) 及其标准误差 ( sd),此外还有一些关于全局模型 ( method) 和观察数量 ( n) 的信息。

我想拼合名单betas,并sd同时区分其中的每一个值x1x2来自(即,如果它们是从betassd)。

请仔细考虑以下示例:

result<- list(n       = 100,
              method  = "tree", 
              betas   = list(x1 = 1.47,
                             x2 = -2.85),
              sd      = list(x1 = 0.55,
                             x2 = 0.25))

str(result)
# List of 4
# $ n         : num 100
# $ iterations: num 50
# $ betas     :List of 2
# ..$ …
Run Code Online (Sandbox Code Playgroud)

r list dplyr

0
推荐指数
1
解决办法
32
查看次数