我有一个功能r(x)
,我想围绕x
轴旋转,以获得我想要使用(着色)添加到现有绘图的旋转实体.plot_ly
add_surface
x
这是一个例子:
library(dplyr)
library(plotly)
# radius depends on x
r <- function(x) x^2
# interval of interest
int <- c(1, 3)
# number of points along the x-axis
nx <- 20
# number of points along the rotation
ntheta <- 36
# set x points and get corresponding radii
coords <- data_frame(x = seq(int[1], int[2], length.out = nx), r = r(x))
# for each x: rotate r to get y and …
Run Code Online (Sandbox Code Playgroud) 我有一个Rmd
包含大量缓存代码块的文件.
现在,我想继续使用交互式会话开发该脚本,以便在将最终代码放入文档的新块之前进行游戏并测试不同的解决方案.
使用普通R
脚本,我可以直接使用它来使我的交互式会话与脚本的最后一行相同.但是,这将导致(重新)执行交互式会话中的所有代码.
我想将我的Rmd
文件读入一个交互式会话,忽略Markdown部分并利用现有的knitr
缓存,理想情况下不创建任何输出.
我怎样才能做到这一点?
PS:我不是在寻找一些特定于IDE的方法来设置它,但是我可以在任何终端模拟器中从一个简单的R会话中运行命令.
我有一个data.frame
看起来像这样:
# set example data
df <- read.table(textConnection("item\tsize\tweight\tvalue
A\t2\t3\t4
A\t2\t3\t6
B\t1\t2\t3
C\t3\t2\t1
B\t1\t2\t4
B\t1\t2\t2"), header = TRUE)
# print example data
df
Run Code Online (Sandbox Code Playgroud)
item size weight value
1 A 2 3 4
2 A 2 3 6
3 B 1 2 3
4 C 3 2 1
5 B 1 2 4
6 B 1 2 2
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样size
,weight
并列不会增加任何复杂性,因为它们对于每个都是相同的item
.但是,value
同样可以有多个item
.
我想将data.frame折叠为每次item
使用均值一行value
:
item size weight value
1 A …
Run Code Online (Sandbox Code Playgroud) 2011-07-01 ... /home/todd/logs/server_log_1.log ...
2011-07-02 ... /home/todd/logs/server_log_2.log ...
2011-07-03 ... /home/todd/logs/server_log_3.log ...
Run Code Online (Sandbox Code Playgroud)
我有一个文件看起来像上面.我想从中提取文件名并输出到STDOUT:
server_log_1.log
server_log_2.log
server_log_3.log
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?谢谢!
文件名模式是server_log_xxx.log,它只在一行中出现一次.
我想在R
使用上方/下方绘制多个箱图,而不是彼此相邻ggplot2
.这是一个例子:
library("ggplot2")
set.seed(1)
plot_data<-data.frame(loc=c(rep(1,200),rep(2,100)),
value=c(rnorm(100,3,.5),rnorm(100,1,.25),2*runif(100)),
class=c(rep("A",100),rep("B",100),rep("C",100)))
ggplot(plot_data,aes(x=loc,y=value,group=class)) +
geom_boxplot(fill=c("red","green","blue"))
Run Code Online (Sandbox Code Playgroud)
这导致以下情节:
如您所见,蓝色框图以其loc
值(2.0)为中心,而红色和绿色仅具有宽度的一半,并且绘制在其共享loc
值(1.0)的左侧和右侧.我想让它们都与蓝色宽度相同,并将它们直接绘制在彼此之上.
我怎样才能做到这一点?
请注意,我确信箱形图对于我要显示的数据不会重叠,就像它们不适用于给定的示例数据一样.
我试图从大写的文件名中取出最后两个字母,并将它们以小写形式附加到文件名.我完成了命令:
ls | sed -e "s/.*\([A-Z][A-Z]\)$/\0\/\L\1\E/"
Run Code Online (Sandbox Code Playgroud)
实现这一点,在我的Ubuntu箱它工作得很好,但在我的Mac它简单地打印出一个0/LXXE/
地方XX
是从捕获正确的字母.
什么是Mac sed等价物\0
,\L
和\E
?
我已经浏览过网络,有几个人注意到Mac OS X sed与Ubuntu sed有所不同,但是大多数线程都在讨论-i
文件扩展名或空字符串的要求(以前曾让我失望).
有没有办法根据文本文件中的值绘制函数?
我知道如何在gnuplot中定义一个函数然后绘制它,但这不是我需要的.我有一个表常常更新的函数常量.当这个更新发生时,我希望能够运行一个用这条新曲线绘制图形的脚本.由于绘制的数字很少,我想自动化该过程.
这是一个包含常量的示例表:
location a b c
1 1 3 4
2
Run Code Online (Sandbox Code Playgroud)
我有两种方法可以解决问题,但我不知道它们是否以及如何实施.
f(x)=1(x)**2+3(x)+4
,将其写入文件,并以某种方式使gnuplot读取此新文件并绘制在特定x
范围内.f(x) = awk /1/ {print "f(x)="$2
,或者直接在plot命令中使用awk.我无论如何,我被困住了,并没有在网上找到解决这个问题的方法,你有什么建议吗?
我有2个固定长度的文件输入#1和输入#2.我想根据两个文件中位置37-50的值来匹配行(pos 37-50在两个文件中都有相同的值).
如果找到任何匹配记录,则根据输入文件#1(位置99直到行尾)的公司代码和发票编号剪切该值.
剪切字符串(来自输入#1)需要附加在记录/行的末尾.
下面是我尝试的代码(不工作)以及输入文件和所需的输出.请提供您的建议.
码:
awk '
NR==FNR && NF>1 {
v=substr($0,37,14);
#print substr($0,37,14)
next
}
NR==FNR && ( /Company Code/ OR /Invoice Number/ ) {
sub(/Company Code/,"",$0);
sub(/Invoice Number/,"",$0);
a[v]=$0;
print $0
next
}
(substr($0,37,14) in a) {
print $0 a[substr($0,99)]
}' Input1.txt input2.txt input3.txt
Run Code Online (Sandbox Code Playgroud)
结束代码
输入#1 以一些空格开头的 Start
612 1111111111201402120000 2 1 111 211 Due Date 20140101
612 1111111111201402120000 2 1 111 311 Company Code 227
612 1111111111201402120000 2 1 111 411 Item Code 12
612 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为 Snakemake 工作流程中的输出目录别名创建一个符号链接目录结构。
让我们考虑以下示例:
很久以前,在一个遥远的星系里,有人想找到宇宙中最好的冰淇淋口味,并进行了一项调查。我们的示例工作流程旨在通过目录结构表示投票。调查是用英语进行的(因为他们在那个外国星系都说英语),但结果也应该被非英语人士理解。符号链接可以解决问题。
为了使我们人类和 Snakemake 可以解析输入,我们将它们粘贴到一个 YAML 文件中:
cat config.yaml
Run Code Online (Sandbox Code Playgroud)
flavours:
chocolate:
- vader
- luke
- han
vanilla:
- yoda
- leia
berry:
- windu
translations:
french:
chocolat: chocolate
vanille: vanilla
baie: berry
german:
schokolade: chocolate
vanille: vanilla
beere: berry
Run Code Online (Sandbox Code Playgroud)
为了创建相应的目录树,我从这个简单的 Snakefile 开始:
flavours:
chocolate:
- vader
- luke
- han
vanilla:
- yoda
- leia
berry:
- windu
translations:
french:
chocolat: chocolate
vanille: vanilla
baie: berry
german:
schokolade: chocolate
vanille: vanilla
beere: berry
Run Code Online (Sandbox Code Playgroud)
我确信有更多 'pythonic' 方法来实现我想要的,但这只是一个简单的例子来说明我的问题。 …
我试图调整一些bash脚本,使它们在(pbs)集群上运行.
各个任务由几个由主脚本启动的脚本执行.到目前为止,这个主要脚本在后台启动多个脚本(通过附加&
),使它们在一个多核机器上并行运行.我希望用qsub
s 代替这些调用来分配集群节点的负载.
但是,有些工作依赖于其他工作才能开始.到目前为止,这是通过wait
主脚本中的语句实现的.但是使用Grid Engine的最佳方法是什么?
我已经在手册页中找到了这个问题和-W after:jobid[:jobid...]
文档,qsub
但我希望有更好的方法.我们正在谈论几个并行运行的thousend作业和另一个相同大小的一组,以便在最后一个完成之后同时运行.这意味着我必须根据很多工作排队很多工作.
我可以通过在中间使用虚拟作业来减少这种情况,除了取决于第二组可能依赖的第一组作业之外什么都不做.这会将依赖数量从数百万减少到数千,但仍然是:它是错误的,我甚至不确定shell是否会接受如此长的命令行.
qwait -u <user>
)?qwait [-p <PID>]
)?当然可以在循环中使用qstat
和编写这样的东西,但我想这个用例非常重要,有一个内置的解决方案,我只是无法想出那个.sleep
while
在这种情况下你会推荐/使用什么?
附录一:
由于在评论中要求:
$ qsub --version
version: 2.4.8
Run Code Online (Sandbox Code Playgroud)
也许也有助于确定准确的pbs系统:
$ qsub --help
usage: qsub [-a date_time] [-A account_string] [-b secs]
[-c [ none | { enabled | periodic | shutdown |
depth=<int> | dir=<path> | interval=<minutes>}... ] …
Run Code Online (Sandbox Code Playgroud)