我有一个复杂的列表对象,一个建模函数 (asreml) 的输出。该对象包含各种数据类型,包括附加了环境的函数和公式。我不想将环境保存到 RDS,因为它们非常大而且我保存了很多模型。
我refhook=在serialize和saveRDS函数中遇到了参数。文档说:
refhook 函数可用于自定义非系统引用对象(所有外部指针和弱引用,以及命名空间和包环境以及 .GlobalEnv 以外的所有环境)的处理。serialize 的钩子函数应该为它要处理的引用返回一个字符向量;否则它应该返回NULL。
鉴于此示例模型
e <- new.env()
e$a = rnorm(10)
l <- list(a = e, b = 42)
Run Code Online (Sandbox Code Playgroud)
refhook 函数确实显示了一些效果。当我定义一个返回字符的函数时,输出变小,表明环境没有得到保存:
length(serialize(l, connection = NULL))
[1] 338
s <- serialize(l,
connection = NULL,
refhook = function(x) "")
length(s)
[1] 109
Run Code Online (Sandbox Code Playgroud)
但是,我无法读取结果对象:
unserialize(s)
Error in unserialize(s) :
no restore method available
Run Code Online (Sandbox Code Playgroud)
我还尝试了原始向量输出,怀疑 refhook 可能会提供替代的序列化输出,但这不起作用:
s2 <- serialize(l,
connection = NULL,
refhook = function(x)
serialize("env", connection = NULL)))
Error in …Run Code Online (Sandbox Code Playgroud) 我会发现它是模拟色盲人士视觉的有用工具,例如我准备演示时.我可以用来xcalib为我的显示器分配一个特定的ICC配置文件.
但是,我找不到为此任务创建的配置文件.
在http://daltonize.org上,我发现必须指定"CIE chromaticy corrdinates"(见下文).
我找到了SampleICC程序,它可能用于此任务.
是否可以单独将CIE Chromaticy坐标转换为颜色配置文件或需要更多输入?有没有人曾使用过SampleICC并且知道如何将CIE corrdinates转换为合适的输入?
每种类型的色觉缺陷的CIE色度坐标(x/y)如下:
Run Code Online (Sandbox Code Playgroud)Protanopia (0.7465, 0.2535) Deuteranopia (1.4, -0.4) Tritanopia (0.1748, 0.0)
下面我列出了我认为可能适合的几个SampleICC程序的帮助输出.
create_display_profile
用法是:create_display_profile input_file N description copyright output_file where
IN.txt是一个文件,其内容是:
- 测量红色XYZ初级(浮子的三重态)
- 测量绿色XYZ初级(浮子的三重态)
- 测量蓝色XYZ初级(浮子的三重态)
- 测量中黑色XYZ(浮子的三重态)
- 测量中等白色XYZ(浮子的三重态)
- N行是红色(浮点数)的色调曲线
- N行是绿色(浮点数)的色调曲线
N行是蓝色(浮点数)的色调曲线
N是每个色调曲线的采样点数,
description是一个字符串,用于标识配置文件,
copyright是标识配置文件内容所有者的字符串,以及
output_file是包含创建的监视器配置文件的文件
示例: create_display_profile matrix_trc_input.txt 42"我的TRC/Matrix配置文件""Copyright(c)2007 My Little Company - 保留所有权利"matrix_trc.icc
create_CLUT_profile
用法: create_CLUT_profile [OPTION] ...描述MEDIA_WHITE SIZE IN_FILE OUT_FILE
例子:
create_CLUT_profile"sample profile""0.21 0.24 0.52"11 /tmp/in.txt /tmp/out.icc
create_CLUT_profile -f"0.01 …
我有一个视口,该视口必须具有固定的宽高比,因为它的原始坐标系中的x和y单位之间必须具有相等的距离。
我想将此视口装配到父视口中,以便将其最大程度地缩放,但保持其宽高比。
使用网格单元“ snpc”,尽管我无法达到最大程度,但我仍然可以保持宽高比。请参阅下面的代码,该代码以四种不同的设备纵横比打印出到目前为止已归档的内容。
当设备的宽度较小时,感兴趣的视口(灰色并带有网格的视口)会填充可用的最大区域,但如果设备的宽度变得太大而导致设备的高度成为视口大小的限制因素,则该方法将失败。视口无法覆盖整个可能的高度。我希望感兴趣的视口在最右边的图中覆盖整个设备的高度。
编辑:我发现ggplot可以做到这一点,并更新了我的示例来显示这一点。请注意ggplot如何触摸最右边图像中的设备上下边界以及最左边图像中的左右边界,为什么我自己制作的解决方案即使在有空格的情况下也不会触摸最右边图像中的设备上下边界。但是,我不能使用ggplot,因为我想包括一个仅使用网格构建的自定义图形,但该图形依赖于本机x和y坐标系上的相等距离。
# -- Helper functions ------------------------------------------------------
# Draw something (inside fun) for different paper sizes
forDifferentSizes <- function(names, width, height, fun, ...){
cyc <- function(x, along) rep_len(x, length(along))
mapply( names, cyc(width, names), cyc(height, names)
, FUN = function(n, w, h){
png(paste0(n,'.png'), width = w, height = h, ...)
on.exit(dev.off())
fun(n, w, h)
})
}
# -- Own attempt -----------------------------------------------------------
library(grid)
# Coordinate system
x <- c(1,6)
y <- c(1,4)
range <- c(diff(x), diff(y))
dims …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚“任务”的概念在 SLURM 中意味着什么。我在 SO 上找到了这个答案,它建议我使用以下作业脚本:
#!/bin/bash
#SBATCH --ntasks=2
srun --ntasks=1 sleep 10 &
srun --ntasks=1 sleep 12 &
wait
Run Code Online (Sandbox Code Playgroud)
作者说这项工作总共需要 12 秒才能运行,因为这两个步骤sleep 10是sleep 12并行运行的,但我无法重现这一点。
如果我将上述文件另存为slurm-test并运行
sbatch -o slurm.out slurm-test,
Run Code Online (Sandbox Code Playgroud)
我看到我的作业运行了 23 秒。
这是以下的输出sacct --format=JobID,Start,End,Elapsed,NCPUS -S now-2minutes:
JobID Start End Elapsed NCPUS
------------ ------------------- ------------------- ---------- ----------
645514 2021-06-30T11:05:38 2021-06-30T11:06:00 00:00:22 2
645514.batch 2021-06-30T11:05:38 2021-06-30T11:06:00 00:00:22 2
645514.exte+ 2021-06-30T11:05:38 2021-06-30T11:06:00 00:00:22 2
645514.0 2021-06-30T11:05:38 2021-06-30T11:05:48 00:00:10 2
645514.1 2021-06-30T11:05:48 2021-06-30T11:06:00 00:00:12 …Run Code Online (Sandbox Code Playgroud) 我正在创建一个 Singularity 图像,并且想要一个自定义的 bash 提示符,就像我可以通过PS1在我的~/.bash_profile.
但是,不幸的是,Singularity 做了一些事情来强制执行自己的提示,如下所示:Singularity>。这不是一个很有帮助的提示。
我尝试在定义文件中设置 PS1,如下例所示:
# File prompt-test1.def
Bootstrap: shub
From: alpine:latest
%environment
export PS1="[my-container]\w\$ "
Run Code Online (Sandbox Code Playgroud)
我构建并运行了该图像,但无济于事:
sudo singularity build prompt-test.sif prompt-test.def
singularity shell prompt-test.sif
# shows Singularity>
Run Code Online (Sandbox Code Playgroud)
使用envshell 中的命令,我注意到已PROMPT_COMMAND设置:
echo $PROMPT_COMMAND
# PS1="Singularity> "; unset PROMPT_COMMAND
Run Code Online (Sandbox Code Playgroud)
...所以我试图改变这一点:
# File prompt-test2.def
Bootstrap: shub
From: alpine:latest
%environment
export PROMPT_COMMAND='PS1="[my-container]\w\$ "; unset PROMPT_COMMAND'
Run Code Online (Sandbox Code Playgroud)
...但提示保持不变!但现在,PROMPT_COMMAND容器内部看起来像
echo $PROMPT_COMMAND
# PS1="[my-container]\w\$ "; unset PROMPT_COMMAND; PROMPT_COMMAND="${PROMPT_COMMAND%%; PROMPT_COMMAND=*}";PS1="Singularity> "
Run Code Online (Sandbox Code Playgroud)
编辑以替换为更好的信息/.singularity.d/env …
我有一个这样的数据集:
data(CO2, package = 'datasets')
## Plant Type Treatment conc uptake
## 1 Qn1 Quebec nonchilled 95 16.0
## 2 Qn1 Quebec nonchilled 175 30.4
## ...
## 17 Qn3 Quebec nonchilled 250 40.3
## 18 Qn3 Quebec nonchilled 350 42.1
## ...
## 27 Qc1 Quebec chilled 675 35.4
## 28 Qc1 Quebec chilled 1000 38.7
## ...
## 36 Qc3 Quebec chilled 95 15.1
## 37 Qc3 Quebec chilled 175 21.0
## ...
## 47 Mn1 Mississippi nonchilled …Run Code Online (Sandbox Code Playgroud) body.style.background = 无法在 script.js 包含的文件中工作,其他一切都可以工作,兑现的 dom 选择器可以工作,输入 body.style.background = 'red'; 有效,但不在包含文件中
我已经尝试过console.logs,如下面的代码中所述,输出的奇特之处是,如果我从回调中复制日志并将其粘贴到body.style.background中,它可以工作,但不能在脚本文件中。
color_1 = document.querySelector("#color-1");
color_2 = document.querySelector("#color-2");
body = document.querySelector("body");
function changeBackgroundColor() {
body.style.background = "linear-gradient(to right, "+color_1.value+ ", "+ color_2.value+");";
//************* I am getting the console.logs but the background's not changing
console.log("linear-gradient(to right, " + color_1.value + ", " + color_2.value + ");");
}
//************* Both the listeners work fine and the cashed selectors
color_1.addEventListener("input", changeBackgroundColor);
color_2.addEventListener("input", changeBackgroundColor);Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<title>Background Color Generator</title>
<!-- Custom Styles -->
<style …Run Code Online (Sandbox Code Playgroud)r ×3
background ×1
dom ×1
dplyr ×1
ggplot2 ×1
javascript ×1
plot ×1
r-grid ×1
shell ×1
slurm ×1