小编mho*_*ovd的帖子

read_csv 和 read.csv 之间有什么实际区别?什么时候应该使用其中一种而不是另一种?

我经常使用逗号分隔的值,并且对read_csv()和之间的差异感到好奇read.csv()

是否有任何实际差异可以揭示两者的情境使用?

csv r readr

9
推荐指数
2
解决办法
4287
查看次数

使用跟踪编辑 R 中的函数?

我注意到我想使用的包中的函数存在错误。GitHub 上出现了一个问题,但创建者还没有解决这个问题,我需要尽快使用该功能。

因此我想编辑代码。显然,这可以通过编辑源代码、重新打包和安装整个包来实现,我可以重写函数并重新分配命名空间,但也可能只使用trace().

我已经发现我可以做到:

as.list(body(package:::function_inside_function))
Run Code Online (Sandbox Code Playgroud)

我要编辑的行位于该函数的第二步

具体来说,我需要编辑的就是代码中的这一行。我必须更改ignore.caseignore.case=TRUE. 链接失效的例子:

functionx(){if{...} else if(grepl("miRNA", data.type, ignore.case)) {...}}
Run Code Online (Sandbox Code Playgroud)

我还没有真正找到如何从这里开始的实际示例,所以有人可以向我展示如何执行此操作的示例,或者引导我找到使用跟踪的实际示例吗?或者也许将函数重新分配给名称空间?

trace r function edit

5
推荐指数
1
解决办法
2375
查看次数

当地块纵横比为 1 时,将地块与拼凑而成

我遇到了使用patchworkwhen组合图的问题theme(aspect.ratio = 1)。提供了一些示例:

library(tidyverse)
library(patchwork)

# Create the base plots
plotlist = list(
  fig1 = iris %>% 
    filter(Species == "setosa") %>% 
    ggplot(aes(x = Sepal.Length, y = Sepal.Width)) +
    geom_point(),
  
  fig2 = iris %>% 
    filter(Species == "versicolor") %>% 
    ggplot(aes(x = Sepal.Length, y = Sepal.Width)) +
    geom_point(),
  
  fig3 = iris %>% 
    filter(Species == "virginica") %>% 
    ggplot(aes(x = Sepal.Length, y = Sepal.Width)) +
    geom_point()
)

# Here patchwork combines the plots nicely
plotlist$fig1 / (plotlist$fig2 + plotlist$fig3)
Run Code Online (Sandbox Code Playgroud)


# However, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 patchwork

5
推荐指数
1
解决办法
79
查看次数

具有依赖性的链接多个 SLURM 作业

上一个问题中,我询问如何将作业 B 排队在作业 A 之后启动,这是通过

sbatch --dependency=after:123456:+5 jobB.slurm

其中123456是作业 A 的 id,:+5表示它将在作业 A 后五分钟开始。我现在需要对多个作业执行此操作。工作 B 应该依赖于工作 A,工作 C 依赖于 B,工作 D 依赖于 C。

sbatch jobA.slurm将返回Submitted batch job 123456,并且我需要将作业 id 传递给除第一个作业之外的所有作业的依赖项调用。由于我使用的是繁忙的集群,因此我不能依赖于将作业 ID 加一,因为有人可能会在其间排队作业。

因此,我想编写一个接受作业脚本的脚本(*.slurm)我想作为参数运行,例如

./run_jobs.sh jobA.slurm jobB.slurm jobC.slurm jobD.slurm

然后,对于传递给它的所有作业脚本,该脚本应该运行,

sbatch jobA.slurm # Submitted batch job 123456
sbatch --dependency=after:123456:+5 jobB.slurm # Submitted batch job 123457
sbatch --dependency=after:123457:+5 jobC.slurm # Submitted batch job 123458
sbatch --dependency=after:123458:+5 jobD.slurm # Submitted batch job …
Run Code Online (Sandbox Code Playgroud)

slurm sbatch

3
推荐指数
1
解决办法
3483
查看次数

提高 RStudio 图形设备的质量(预览)

使用 RStudio 时,可以在“绘图”窗格或内置查看器中检查绘图。然而,我注意到与保存的绘图相比,这些预览的质量较差。显然,可以导出或保存图像,并且不乏方法(pdf()png()ggsave()等)。

作为iris示例,以下屏幕截图产生以下图

library(tidyverse)
p.iris = iris %>% 
  ggplot(aes(x = Sepal.Length, y = Sepal.Width)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

p.iris
Run Code Online (Sandbox Code Playgroud)

Rstudio 绘图预览的屏幕截图

与相同情节的保存版本相比,具有高 DPI。

ggsave(plot = p.iris, filename = "Example.png", dpi = 320)
Run Code Online (Sandbox Code Playgroud)

虽然差异很细微,例如,线条geom_smooth更清晰。 同一情节的保存版本

如果检查绘图预览,您可以看到绘图已保存到.png

library(tidyverse)
p.iris = iris %>% 
  ggplot(aes(x = Sepal.Length, y = Sepal.Width)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

p.iris
Run Code Online (Sandbox Code Playgroud)

假设我不介意使用额外的资源或时间来呈现更好质量的预览 - 我会调整哪些设置?

r ggplot2 rstudio

3
推荐指数
1
解决办法
1711
查看次数

是否可以拥有 Node.js websocket 客户端?

到目前为止,我只看到了一些示例,其中 Node.js 中的应用程序已设置为 websockets 的服务器。通常客户端是基于浏览器的,我还没有看到 Node.js 客户端的例子。

Node.js websocket 客户端的例子怎么这么少?或者,客户端-服务器通信还有哪些其他选择?

javascript websocket node.js

2
推荐指数
2
解决办法
3270
查看次数

从 ggplot 对象获取轴限制

有时我会制作两个相似但数据不同的图。因此,X 轴和 Y 轴将具有不同的范围。

library(ggplot2)
library(ggpubr)
#> Loading required package: magrittr
df1 <- data.frame(x=runif(10)*2,y = runif(10)*2)
df2 <- data.frame(x=runif(10)*3,y = runif(10)*1)
p1 <- qplot(x = x, y = y, data = df1, geom = "line")
p2 <- qplot(x = x, y = y, data = df2, geom = "line")

ggarrange(p1,p2)
Run Code Online (Sandbox Code Playgroud)

reprex 包(v0.3.0)于 2020 年 7 月 9 日创建

这可以通过使用xlim和显式声明范围来手动克服ylim,但这既令人厌烦,而且如果不小心可能会导致某些数据超出指定范围。

理想的解决方案是从 动态获取限制p1,如果这些限制大于的限制,则p2使用它们代替p2。例如p2 + xlim(getLimits(p1))

支持这样的东西吗?

编辑: 有人提出了 …

r ggplot2

2
推荐指数
1
解决办法
558
查看次数

R 中的链接赋值

我最近发现 R 允许链接赋值,例如

a = b = 1:10
a
 [1]  1  2  3  4  5  6  7  8  9 10
b
 [1]  1  2  3  4  5  6  7  8  9 10
Run Code Online (Sandbox Code Playgroud)

然后我认为如果两个参数应采用相同的值,这也可以在函数中使用。然而,事实并非如此。例如,plot(x = y = 1:10)会产生以下错误:Error: unexpected '=' in "plot(x = y ="。有什么不同,为什么这不起作用?我猜这与只有第一个返回到函数有关,但两者似乎都被评估了。

R 中的链式赋值有哪些可能性和限制?

r

2
推荐指数
1
解决办法
360
查看次数

使用 dplyr 对除某些列之外的所有列进行变异

我发现这across()对于在多个列上重复操作非常有用。但是,我仍然没有完全理解如何选择特定列进行操作。

假设我想将函数应用于mtcars、和之外 的所有列。gearcarb

我尝试过类似的东西

# Function to use over columns
demean <- function(x) {
  x - mean(x, na.rm = TRUE)
}

# Use function on all but columns gear and carb
mtcars %>% mutate(across(.cols = select(.,-gear,-carb), demean))
Run Code Online (Sandbox Code Playgroud)

但是,这会引发错误

Error: Problem with `mutate()` input `..1`.
x Must subset columns with a valid subscript vector.
x Subscript has the wrong type `data.frame<
Run Code Online (Sandbox Code Playgroud)

取消选择某些列的正确方法是什么across

r dplyr across

2
推荐指数
1
解决办法
2391
查看次数

对 SLURM 作业进行排队以在 X 分钟后运行

我一直在尝试寻找有关如何使用以下选项来实现作业依赖项的示例-d, --dependency=<dependency_list>

在文档中,语法显示为after:job_id[[+time][:jobid[+time]...]] 但我无法找到任何示例,而且说实话,我发现语法的表示令人困惑。

我已经尝试过sbatch --dependency=after:123456[+5] myjob.slurmand sbatch --dependency=after:123456+5 myjob.slurm,但这会产生错误

sbatch: error: Batch job submission failed: Job dependency problem

如何添加依赖项以Job B使其在Job A启动后 X 分钟启动?

slurm

1
推荐指数
1
解决办法
504
查看次数

标签 统计

r ×7

ggplot2 ×3

slurm ×2

across ×1

csv ×1

dplyr ×1

edit ×1

function ×1

javascript ×1

node.js ×1

patchwork ×1

readr ×1

rstudio ×1

sbatch ×1

trace ×1

websocket ×1