我有一张桌子:
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) 有没有办法制作一个有向 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)
假设,我有一个列表:
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),然后连接列,但也许有更简单的方法。