我有一个较长的数据集,其中的列分别代表开始时间和结束时间,并且如果行与另一行重叠并且具有较高的优先级(例如1为最高优先级),我想删除该行。我的示例数据是
library(tidyverse)
library(lubridate)
times_df <- tibble(start = as_datetime(c("2019-10-05 14:05:25",
"2019-10-05 17:30:20",
"2019-10-05 17:37:00",
"2019-10-06 04:43:55",
"2019-10-06 04:53:45")),
stop = as_datetime(c("2019-10-05 14:19:20",
"2019-10-05 17:45:15",
"2019-10-05 17:50:45",
"2019-10-06 04:59:00",
"2019-10-06 05:07:10")), priority = c(5,3,4,3,4))
Run Code Online (Sandbox Code Playgroud)
我想出的方法是通过找到具有较高优先级值的重叠,然后使用anti_join
从原始数据帧中将其删除来向后攻击该问题。如果三个时间段重叠相同的时间点,那么此代码将无法正常工作,而且我敢肯定,有一种更高效,更实用的方法可以执行此操作。
dropOverlaps <- function(df) {
drops <- df %>%
filter(stop > lead(start) | lag(stop) > start) %>%
mutate(group = ({seq(1, nrow(.)/2)} %>%
rep(each=2))) %>%
group_by(group) %>%
filter(priority == max(priority))
anti_join(df, drops)
}
dropOverlaps(times_df)
#> Joining, by = c("start", "stop", "priority")
#> # A tibble: 3 x …
Run Code Online (Sandbox Code Playgroud) 我正在使用美人鱼 js 生成甘特图。在文档中,它显示了如何使用“after x”设置相对于先前任务完成的任务,例如:
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
Run Code Online (Sandbox Code Playgroud)
是否有任何等价物可以将任务设置在随后的截止日期之前?我尝试用“之前”替换“之后”,但这没有用
我有一些来自 api 的数据,它以一种不寻常的格式提供时间戳,最后包括一周中的哪一天和一年中的哪一天。例如 [2021, 8, 22, 22, 0, 20, 6, 234] 是 2021/08/22 22:00:20 在一周的第 6 天,一年的第 234 天。我想将其转换为 lubridate 日期时间对象,但不知道如何去除最后两个值。
例如我想把这个数据
example <- tibble(timestamp = c("[2021, 8, 22, 22, 0, 20, 6, 234]", "[2021, 8, 22, 22, 0, 30, 6, 234]", "[2021, 8, 22, 22, 0, 41, 6, 234]"), temperature = c(28,29,30))
并将时间戳列转换为 lubridate 日期时间类型。有任何想法吗?
我正在尝试基于另一列创建一个新列,用于case_when
根据每行的值给出不同的输出。
我从df <- data.frame(a=c("abc", "123", "abc", "123"))
b
并想像这样生成一个新列
#> a b
#> 1 abc letter
#> 2 123 number
#> 3 abc letter
#> 4 123 number
Run Code Online (Sandbox Code Playgroud)
我已经尝试过df %>% mutate(b = case_when(startsWith(a, "a") ~ "letter", startsWith(a, "1") ~ "number"))
,但它只给出了一个错误。有人可以告诉我如何根据 a 列中行的第一个字母获取 b 列的不同值吗?
关于在mac上安装matplotlib有很多问题,但据我所知,我已经使用pip正确安装了它,它只是无法正常工作.当我尝试使用matplotlib.pyplot.plot(x,y)运行脚本时,没有任何反应.没有错误,没有任何错误.
import matplotlib.pyplot
x = [1,2,3,4]
y = [4,3,2,1]
matplotlib.pyplot.plot(x, y)
Run Code Online (Sandbox Code Playgroud)
当我在终端中运行一个名为pyplot.py的文件时,我得到了这个:
pgcudahy$ python pyplot.py
pgcudahy$
Run Code Online (Sandbox Code Playgroud)
没有错误,但也没有情节.在一个交互式python shell中我得到了这个:
>>> import matplotlib
>>> print matplotlib.__version__
1.1.1
>>> print matplotlib.__file__
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/__init__.pyc
Run Code Online (Sandbox Code Playgroud)
这让我相信它已正确安装.
有任何想法吗?
我正在尝试确定连续变量的最佳临界值,以预测二进制结果。R包OptimalCutpoints似乎很理想,但我无法使其正常工作。
这是我在数据框“示例”中的数据
id outcome value
200 Favorable -75.2
201 Favorable -34.0
202 Favorable -35.2
203 Favorable -23.3
204 Unfavorable -25.0
205 Favorable -10.6
206 Favorable -19.3
207 Favorable 0.0
208 Favorable -149.8
209 Favorable 0.8
210 Favorable 9.6
211 Unfavorable 5.1
212 Favorable -8.4
213 Favorable -1.3
214 Favorable 0.0
215 Unfavorable 0.0
216 Favorable -26.2
217 Favorable -119.1
218 Favorable 7.2
219 Unfavorable -37.0
Run Code Online (Sandbox Code Playgroud)
当我尝试跑步时
optimal.cutpoint.ROC01 <- optimal.cutpoints(X = "value", status = "outcome", tag.healthy = 'Favorable', methods = "ROC01", …
Run Code Online (Sandbox Code Playgroud)