小编Ser*_*giy的帖子

按月分割日期期间并在必要时添加行

我有一张桌子:

Name| Start     | Finish    |
----|-----------|-----------|
A   |2015-01-22 |2015-02-04 |
B   |2015-01-02 |2015-01-10 |
A   |2015-01-22 |2015-02-14 |
B   |2015-01-02 |2015-02-10 |
Run Code Online (Sandbox Code Playgroud)

我需要按月中断月经。如果一个时期在一个月内开始并在下一个月结束,那么我需要将其分为两个时期。如果月经在同一个月开始和结束,那么就应该如此。假设 period 不能包含超过一个月的第一天。换句话说,每行可以拆分为不超过两行。结束(周期结束)总是大于开始。

这就是我想要得到的:

Name| Start     | Finish    |
----|-----------|-----------|
A   |2015-01-22 |2015-01-31 |
A   |2015-02-01 |2015-02-04 |
A   |2015-01-22 |2015-01-31 |
A   |2015-02-01 |2015-02-14 |
B   |2015-01-02 |2015-01-10 |
B   |2015-01-02 |2015-01-31 |
B   |2015-02-01 |2015-02-10 |
Run Code Online (Sandbox Code Playgroud)

输出行的顺序无关紧要。

这是该表的代码:

Name = c("A", "B", "A", "B")
Start = c(as.Date("2015-01-22"), as.Date("2015-01-02"), as.Date("2015-01-22"), as.Date("2015-01-02"))
Finish = c(as.Date("2015-02-04"), as.Date("2015-01-10"), as.Date("2015-02-14"), …
Run Code Online (Sandbox Code Playgroud)

r date

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

创建边缘标签不重叠的 visNetwork 图

有没有办法制作一个有向 visNetwork 图表,其中边的标签不重叠?(下图中的 e5 和 e4 重叠)

library(visNetwork)
nodes = data.frame(id = c(0, 1, 2, 3, 4),
                   X = c("x0", "x1", "x2", "x3", "x4"),
                   label = c("x0", "x1", "x2", "x3", "x4"),
                   shape = "circle")
edges = data.frame(from = c(0, 0, 1, 1, 2, 2),
                   to = c(1, 2, 3, 4, 3, 4),
                   arrows = "to",
                   label = c("e1", "e2", "e3", "e4", "e5", "e6"))

graph = visNetwork(nodes, edges)
visHierarchicalLayout(graph, 
                      levelSeparation = 150, 
                      sortMethod = "directed", 
                      direction = "LR")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

visualization r visnetwork

5
推荐指数
0
解决办法
646
查看次数

将列表组件组合成一个向量

假设,我有一个列表:

l = list(c("a", "b", "c"), c("d", "e", "f"))

[[1]]
[1] "a" "b" "c"

[[2]]
[1] "d" "e" "f"
Run Code Online (Sandbox Code Playgroud)

我想得到一个向量。

"ad" "be" "cf"
Run Code Online (Sandbox Code Playgroud)

我可以将列表转换为矩阵,例如,sapply(l, c),然后连接列,但也许有更简单的方法。

r list

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

标签 统计

r ×3

date ×1

list ×1

visnetwork ×1

visualization ×1