小编Rem*_*i.b的帖子

在ggplot(R)上显示两个平行轴

假设我们有一个简单的以下类型的情节.

library(ggplot2)
df = data.frame(y=c(0,1.1,2.3,3.1,2.9,5.8,6,7.4,8.2,9.1),x=seq(1,100, length.out=10))
ggplot(df,aes(x=x,y=y)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

x与...完全相关z.关系是:Constant=x^2*z=1.23 因此我可以像这样重写data.frame:

df = cbind(df,1.23/df$x^2)
Run Code Online (Sandbox Code Playgroud)

问题是:

如何显示两个变量xz一个x轴?它可以是底部的一个,图形顶部的一个或底部的两个.

plot r ggplot2 axis-labels

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

从另一个 Python 文件获取 Python 文件

我的问题可能是重复的,但我找不到答案。

如何从另一个 python 文件获取 python 文件。就像是:

def fun_1 (arg):
   ...
   ...
   fun_2 (arg):
     ...
     ...

#### MAIN ####

Source the file that contains the function `fun_2`

fun_1('hello')
Run Code Online (Sandbox Code Playgroud)

python

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

为什么Julia编译器不优化此循环?

我对编译知之甚少,但我很惊讶Julia编译器没有优化多个进程.

让我们考虑Julia(这是一个即时编译器),让我们考虑这两个基本相同的代码.

n=1
@time for i = 1:10^8 n=n+1 end
elapsed time: 3.535394087 seconds (0 bytes allocated)

n=1
@time n=n+10^8
elapsed time: 6.599e-6 seconds (112 bytes allocated)
Run Code Online (Sandbox Code Playgroud)

为什么是一个现代化的编译器不能够理解这漫长的循环会做什么,但添加10^8n

我认为以下例子更引人注目

n=1
@time for i = 1:10^9 n=n end
elapsed time: 3.496573198 seconds (0 bytes allocated)
Run Code Online (Sandbox Code Playgroud)

compiler-construction compilation julia

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

如何强制`geom_line()`不使用最短距离连接点?

ggplot(mtcars, aes(wt, mpg)) + geom_line() + geom_point()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

geom_line()将点与一条直线相连,这是两点之间的最短路径.我想首先在水平(或垂直)方向上直线,然后向上或向下(或向右)连接后面的点.

听起来这个选项可能尚未集成ggplot2.一种方法是创建一组不会显示的点,geom_point()但是它将位于与后面的点相同的x位置(或者与前面的点相同的x位置)和与前面的点相同的y位置(或者与后面的点相同的y位置).这听起来像一个复杂的解决方案 我并没有真正设法让它发挥作用.有更好的解决方案吗?在任何情况下,你能帮助制作一个方便的功能,将做两个技巧(1.First vertical和2.first horiozontal)?

plot r graph line ggplot2

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

如何将反斜杠字符粘贴到字符串中?

如何粘贴反斜杠字符?

ToPrintOnFile = paste("hello", "\", "World")
Error: unexpected symbol in "paste("hello", "\", "World"
Run Code Online (Sandbox Code Playgroud)

如果我尝试用额外的“\”转义这个字符..

ToPrintOnFile = paste("hello", "\\", "World")
[1] "hello \\ World"
Run Code Online (Sandbox Code Playgroud)

我的目标是写入ToPrintOnFile一个文件,其中ToPrintOnFile包含一个反斜杠字符(而不是后面的两个反斜杠字符)。

Thks

regex string r paste character-encoding

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

找到包含在两个`n2` FALSE之间的`n1` TRUE,整个事情包含在`n3` TRUE之间,等等

从一系列TRUE和falses,我想创建一个返回TRUE的函数,无论n1序列中某处是否存在至少一系列TRUE .这是这个功能:

fun_1 = function(TFvec, n1){
    nbT = 0
    solution = -1
    for (i in 1:length(x)){
            if (x[i]){
            nbT = nbT + 1
               if (nbT == n1){
                return(T)
                break
               }
            } else {
                nbT = 0
            }
        }
        return (F) 
}
Run Code Online (Sandbox Code Playgroud)

测试:

x = c(T,F,T,T,F,F,T,T,T,F,F,T,F,F)
fun_1(x,3) # TRUE
fun_1(x,4) # FALSE
Run Code Online (Sandbox Code Playgroud)

然后,我需要一个返回TRUE的函数,如果在给定的列表中布尔向量,则n1至少有一系列由至少两个系列(每侧一个)包裹的TRUE n2.这里的功能:

fun_2 = function(TFvec, n1, n2){
    if (n2 == 0){
        fun_1(TFvec, n2)        
    }
    nbFB = 0
    nbFA = 0
    nbT = 0
    solution …
Run Code Online (Sandbox Code Playgroud)

search boolean-logic boolean r boolean-operations

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

对于每个`pop`获取`id`元素的频率

考虑这些数据:

m = data.frame(pop=c(1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4),
                id=c(0,1,1,1,1,1,0,2,1,1,1,2,1,2,2,2))

> m
   pop id
1    1  0
2    1  1
3    1  1
4    1  1
5    2  1
6    2  1
7    2  0
8    2  2
9    2  1
10   3  1
11   3  1
12   3  2
13   3  1
14   3  2
15   4  2
16   4  2
Run Code Online (Sandbox Code Playgroud)

我想获得每个独特id的每个独特的频率pop例如,id 1当4的时候出现3次pop == 1,因此id 1in 的频率pop 1为0.75.

我想出了这个丑陋的解决方案:

out = …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

如何获取包含\n的最后一行?

根据定义,一行必须以换行符(\n)结尾.).但是为了这篇文章的目的,我会将任何一系列字符视为一行,无论它是否完成\n.

该命令tail -n 1返回最后一行,无论它是否以\n.如何从文件中获取以\n该行是最后一行还是文件的倒数第二行结束的最后一行?

regex bash newline file tail

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

如何在Linux集群上安装R?

我使用一个没有R的集群(操作系统是Linux).我想安装R在我的个人文件夹中,以便我可以这样做

Rscript example.R arg1 arg2
Run Code Online (Sandbox Code Playgroud)

知道我没有管理员权限,我应该如何在这个集群上安装R?

我怎样才能管理包裹?

linux installation r

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

如何列出空文件?(击)

为了列出我做的空文件

find . -name "*.txt" | xargs wc -l | awk -F" " '{if ($1==0) {print $2} }'
Run Code Online (Sandbox Code Playgroud)

或者干脆

wc -l *.txt | awk -F" " '{if ($1==0) {print $2} }'
Run Code Online (Sandbox Code Playgroud)

它可以工作,但它有点慢,因为wc -l计算每个文件中的换行符的数量,而这是不必要的.一旦找到单个换行符就排除文件的过程会快得多.

如何以高效的方式列出空文件?

bash performance awk file find

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