小编Gil*_*709的帖子

R:承诺无法找到对象

我知道你可以在R中编写一个函数,其中参数的默认值是使用同一函数的另一个参数.

foo <- function(a, b = length(a)) {
  b
}

foo(a = c(1, 2))
[1] 2
Run Code Online (Sandbox Code Playgroud)

但是,只要在实际函数调用中使用相同的参数,我就会收到错误:

foo(a = c(1, 2), b = length(a))
Error in foo(a = c(1, 2), b = length(a)) : object 'a' not found
Run Code Online (Sandbox Code Playgroud)

我认为b = length(a)应该在函数内部进行评估,其中a已知,但显然这种情况并未发生.有人可以解释问题所在以及我如何制作

foo(a = c(1, 2), b = length(a))
Run Code Online (Sandbox Code Playgroud)

工作?

r lazy-evaluation

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

如何更改ggplot中的一个特定方面

我在facet_grid()的帮助下创建了在ggplot中显示不同分数(0 - 100%)的饼图.然而,最后得分是结合其他得分的总得分,并且为了将其与其他得分更好地区分,我想更改该特定方面的参数.理想情况下,我想使facet-label变为粗体并将facet移动远离其他facet,但我不知道如何更改仅一个特定facet的参数.

library(ggplot2)
df <- data.frame(label = c("A", "B", "Total"), score = c(60, 70, 65))

ggplot(df, aes(x = "", y = score)) + 
geom_bar(width = 1, stat = "identity") + 
coord_polar("y", start=0) + scale_y_continuous(limits = c(0, 100)) + 
facet_grid(. ~ label)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r facet ggplot2 gtable

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

igraph中加权图的模块化计算

我将igraph中的fastgreedy算法用于加权无向图中的社区检测。之后,我想看一下模块化,对于不同的方法,我有不同的价值,我想知道为什么。我提供了一个简短的示例,演示了我的问题:

library(igraph)
d<-matrix(c(1, 0.2, 0.3, 0.9, 0.9,   
            0.2, 1, 0.6, 0.4, 0.5,  
            0.3, 0.6, 1, 0.1, 0.8,  
            0.9, 0.4, 0.1, 1, 0.5,  
            0.9, 0.5, 0.8, 0.5, 1), byrow=T, nrow=5)    

g<-graph.adjacency(d, weighted=T, mode="lower",diag=FALSE, add.colnames=NA)
fc<-fastgreedy.community(g)

fc$modularity[3]
#[1] -0.05011095
modularity(g,membership=cutat(fc,steps=2),weights=get.adjacency(g,attr="weight"))
#[1] 0.07193047
Run Code Online (Sandbox Code Playgroud)

我希望两个值都相同,并且如果我尝试对非加权图进行相同操作,则将获得相同的值。

d2<-round(d,digits=0)
g2<- graph.adjacency(d2, weighted=NULL, mode="lower",diag=FALSE, add.colnames=NA)
fc2<-fastgreedy.community(g2)
plot(fc2,g2)

fc2$modularity[3]
#[1] 0.15625
modularity(g2,membership=cutat(fc2,steps=2))
#[1] 0.15625
Run Code Online (Sandbox Code Playgroud)

另一个用户也有类似的问题,但是我有igraph的当前版本,所以应该不是问题。有人可以向我解释为什么我看不到我的代码有区别吗?

modularity igraph weighted

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

标签 统计

r ×2

facet ×1

ggplot2 ×1

gtable ×1

igraph ×1

lazy-evaluation ×1

modularity ×1

weighted ×1