我正在 R 中并行模拟(使用包mclapply()中的parallel),并希望跟踪每个函数调用的进度。因此,我决定使用包pbmclapply()中的pbmcapply内容,以便每次运行模拟时都有一个进度条(pbmclapply()专门创建为 的包装器mclapply(),因此除了进度条之外,它们应该具有相同的功能)。
我能够设置种子并获得可重现的结果mclapply(),而不会出现问题,但pbmclapply()每次运行都会给我不同的结果,这让我感到困惑。我在下面包含了一个非常简单的表示。
例如,这是使用mcapply():
## GIVES THE SAME RESULT EACH TIME IT IS RUN
library(parallel)
RNGkind("L'Ecuyer-CMRG")
set.seed(1)
x <- mclapply(1:100, function(i) {rnorm(1)}, mc.cores = 2)
y <- do.call(rbind, x)
z <- mean(y)
print(mean(z))
Run Code Online (Sandbox Code Playgroud)
这是使用相同的代码pbmclapply():
## GIVES DIFFERENT RESULTS EACH TIME IT IS RUN
library(pbmcapply)
RNGkind("L'Ecuyer-CMRG")
set.seed(1)
x <- pbmclapply(1:100, function(i) {rnorm(1)}, mc.cores = 2)
y <- …Run Code Online (Sandbox Code Playgroud) parallel-processing r mclapply reproducible-research random-seed
我有一个日期向量,想要检查某个特定日期,在向量中的150天内以及该日期之前的150天内,向量中是否存在值。我的数据的一个简单示例如下所示:
given_date <- as.Date('2006-06-06')
dates <- as.Date(c("2005-02-22", "2005-04-26", "2005-08-02", "2005-10-04", "2005-12-06", "2006-03-14", "2006-06-06"))
Run Code Online (Sandbox Code Playgroud)
我知道我可以做的某个日期会given_date %in% dates返回TRUE。
但是,对于我的问题,我想检查类似于以下内容的内容:
ifelse(range(given_date-1, given_date-150) %in% dates & range(given_date-151, given_date-300) %in% dates, TRUE, FALSE)
因此对于我提供的数据,将返回结果,TRUE因为在150天内存在一个日期given_date(例如2006-03-14存在于(2006-01-07,2006-06-06)范围内),并且在此日期之前的150天内存在另一个(例如,2005-10-04存在于(2005-08-10,2006-01-07)的范围内)。
感谢您对我如何在R中做到这一点的任何帮助!
这是我的代码:
obj = {"TIME":123,"DATE":456}
console.log(obj.TIME);
console.log("---------")
for (var key in obj) {
console.log(key);
console.log(obj.key);
}
Run Code Online (Sandbox Code Playgroud)
它打印如下:
123
---------
TIME
undefined
DATE
undefined
Run Code Online (Sandbox Code Playgroud)
为什么 console.log(obj.key) 打印为未定义?
我希望我的代码打印出以下内容,使用 obj.key 打印出每个键的值:
123
---------
TIME
123
DATE
456
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我有 R 中一位患者的数据,其中显示了他们在某种情况下测试呈阳性的日期。数据如下所示:
date positive
2005-02-22 yes
2005-04-26 no
2005-08-02 yes
2005-10-04 no
2005-12-06 yes
2006-03-14 no
2006-06-06 no
2006-09-12 yes
2006-12-19 yes
2007-03-27 yes
Run Code Online (Sandbox Code Playgroud)
现在我介绍一个新的定义。如果“当前测试为阳性,并且在之前 365 天内>=50% 的测试为阳性”,则将患者的状况定义为“慢性阳性”。所以我想创建一个输出数据集,告诉我患者在每个日期是否长期呈阳性。例如,输出应如下所示(例如,在 2006-09-12 上,它们是“阳性”但不是“慢性阳性”,因为在过去 365 天内的 4 次访问中有 3 次是阴性的):
date positive chronic
2005-02-22 yes no
2005-04-26 no no
2005-08-02 yes yes
2005-10-04 no no
2005-12-06 yes yes
2006-03-14 no no
2006-06-06 no no
2006-09-12 yes no
2006-12-19 yes no
2007-03-27 yes yes
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?在感兴趣的每一行中,我需要能够查看之前的行(在过去 365 天内)并评估它们的阳性比例。我想我可以使用lead/lag …
我有以下代码:-
function data(x) {
var dataList = "";
for (var key in obj) {
dataList += key + ": " + obj[key] + "\n"
}
$('#modalText').text(dataList);
document.getElementById('dataModal').style.display='block';
}
Run Code Online (Sandbox Code Playgroud)
它会像这样填充 HTML:
<p id="dataList"></p>
Run Code Online (Sandbox Code Playgroud)
尽管在循环的每次迭代中我都有一个 '\n' 连接到我的字符串,但我无法在每个键/值对之后获得换行符以显示在我的模式中。我也尝试过 jQuery .append() 函数而不是 .text(),但无济于事。
我的变量 dataList 在控制台中以正确的换行符打印,如下所示:
key: 123
time: 12:00
department: taxes
Run Code Online (Sandbox Code Playgroud)
但是在模态中打印时,没有换行符:
key: 123 time: 12:00 department: taxes
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它在我的模式中显示,在每个键值对之后换行,就像它在控制台中显示的那样?
我有一系列治疗,每天一次(二进制),比如:
trt <- c(0, 0, 1, 0, 0, 0, 1, 0, 0)
Run Code Online (Sandbox Code Playgroud)
我想创建一个向量days_since,即:
trt是 1所以,输出days_since应该是:
days_since <- c(NA, NA, 0, 1, 2, 3, 0, 1, 2)
Run Code Online (Sandbox Code Playgroud)
我将如何在 R 中做到这一点?为了得到days_since,我基本上需要滞后一个元素并加 1,但每次原始向量 ( trt) 为 1时都重置。如果这在没有 for 循环的情况下可行,那将是理想的,但不是绝对必要的。
r ×4
javascript ×2
key-value ×2
lag ×2
loops ×2
cumsum ×1
dplyr ×1
if-statement ×1
jquery ×1
json ×1
line-breaks ×1
lubridate ×1
mclapply ×1
random-seed ×1
undefined ×1
vector ×1