小编cut*_*h44的帖子

plotly Sankey图:如何更改节点的默认顺序

我使用plotly包创建了一个Sankey图.

据我所知,节点的默认顺序主要由值定义.但是,我想要字母顺序,而无需手动移动鼠标药物的节点.

我可以用R更改默认顺序吗?

任何帮助将不胜感激.下面是一个示例代码和输出:

node_label <- c("x1_1", "x1_2", "x2_1", "x2_2")
link_source <- c(0, 0, 1, 1)
link_target <- c(2, 3, 2, 3)
link_value <- c(2, 5, 1, 3)
# when link_value <- c(5, 2, 1, 3), the order is changed.

plotly::plot_ly(
  type = "sankey", 
  domain = list(x =  c(0,1), y =  c(0,1)), 
  node = list(label = node_label),
  link = list(
    source =  link_source,
    target = link_target,
    value =  link_value))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述在此输入图像描述

r plotly sankey-diagram

14
推荐指数
1
解决办法
1819
查看次数

dplyr :: select_if可以同时使用colnames及其值吗?

我想在单个管道链中使用colnames及其值来选择cols而不引用其他对象,例如NAMES <- names(d).我能用select_if()吗?

例如,

我可以使用colnames来选择cols.
(select(matches(...))更聪明地处理colnames).

library(dplyr)
d <- iris %>% select(-Species) %>% tibble::as.tibble()

d %>% select_if(stringr::str_detect(names(.), "Petal"))
Run Code Online (Sandbox Code Playgroud)

我可以使用这些值.

d %>% select_if(~ mean(.) > 5)
Run Code Online (Sandbox Code Playgroud)

但是如何使用它们呢?(特别是OR)
下面的代码是我想要的(当然,不要运行).

d %>% select_if(stringr::str_detect(names(.), "Petal") | ~ mean(.) > 5)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

r dplyr

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

R visNetwork:如何将标签设置为粗体并增加标签周围的边距

我使用该包创建了一个网络图visNetwork(抱歉,我对其他语言知之甚少)。

我想要两点(请看左下图)

  1. 使标签加粗。
  2. 增加标签和边框之间的空间。

我可以用 R 来做吗?

任何帮助将不胜感激。下面是示例代码和输出:

library(dplyr); library(visNetwork)

visNetwork(nodes = data_frame(id = 1:3, 
                              label = c("abcdef", "xxx", "y"),
                              shape = "box"),
           edges = data_frame(from = c(1, 1, 2),
                              to = c(2, 3, 3),
                              arrows = "to")) %>% 
  visNodes(font = list(size = 17),
           color = list(background = "aliceblue", border = "darkblue")) %>% 
  visEdges(width = 2) %>% 
  visIgraphLayout(layout = "layout_nicely")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述在此输入图像描述

r visnetwork

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

如何在添加多个列的“扩展转换(R 语法)”节点中正确制作“modelerData”和“modelerDataModel”

我使用 SPSS 建模器 v18.2.1 和 R v3.5.1(或 v3.3.3)使用 Essentials for R 18.2.1

我正在尝试制作“扩展转换(R 语法)”节点来处理 SPSS 难以处理的一些问题(未来:使它们成为扩展包)。我希望他们添加多个列,创建新数据等并给出下一个节点data.frame。但是data.frameSPSS 节点错误地识别了它们(即,下一个表节点的输出与 的控制台输出不同print(modelerData))。
怎么做 ?(或者这是一个错误?)

任何帮助将不胜感激。下面是一个可重现的简单示例;

[准备R env和数据(请用纯R做)]

# if not installed 
install.packages(randomForest)

set.seed(1)  # to reproduce
write.csv(iris[sort(sample(1:150, 100)), ], "iris_train_seed1.csv", row.names = FALSE)
Run Code Online (Sandbox Code Playgroud)

【我的节点流程】
在此处输入图片说明

【扩展变换的R代码】

### library ###
library(randomForest)

# make_model
set.seed(1)
modelerModel <- randomForest(formula = Species ~ . ,
                             data = modelerData,
                             ntree = 100)

#### predict
pred_forest <- data.frame(pred = predict(modelerModel, 
                                         newdata = modelerData))
prob_forest …
Run Code Online (Sandbox Code Playgroud)

r spss-modeler

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

标签 统计

r ×4

dplyr ×1

plotly ×1

sankey-diagram ×1

spss-modeler ×1

visnetwork ×1