小编Bas*_*sen的帖子

在R中添加线对

我有一些成对测量的数据(例如 1C,1M,2C和2M),我分别绘制了这些数据(如C和M)。但是,我想在每对之间添加一条线(例如,从C列的点1到M'列'的点1的线)。

整个数据集的一小部分:

PairNumber  Type    M
1   M   0.117133
2   M   0.054298837
3   M   0.039734
4   M   0.069247069
5   M   0.043053957
1   C   0.051086898
2   C   0.075519
3   C   0.065834198
4   C   0.084632915
5   C   0.054254946
Run Code Online (Sandbox Code Playgroud)

我使用以下微小的R代码段生成了以下图片:

boxplot(test$M ~ test$Type)
stripchart(test$M ~ test$Type, vertical = TRUE, method="jitter", add = TRUE, col = 'blue')
Run Code Online (Sandbox Code Playgroud)

当前情节: 在此处输入图片说明

我想知道实现此目标需要什么命令或功能(下面仅给出了一些代码,给出了所需结果的粗略草图)。

所需图 在此处输入图片说明

另外,用ggplot进行此操作对我也很好,我可以使用以下替代ggplot代码来生成类似于上述第一个图的图:

ggplot(,aes(x=test$Type, y=test$M)) + 
  geom_boxplot(outlier.shape=NA) +
  geom_jitter(position=position_jitter(width=.1, height=0))
Run Code Online (Sandbox Code Playgroud)

我一直在尝试geom_path,但是我没有找到实现我想要的正确语法。

r scatter-plot

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

Javac没有安装openjdk-6-jdk

我周末一直在尝试一些不同的java编译器,并决定今天早上坚持使用javac.然后我继续清理由我的测试引起的混乱,删除了每一个java的痕迹,并在autoremove和autoclean之后做了一个新的'apt-get install openjdk-6-jdk'.

然后遇到以下怪异:

tarskin@5-PARA-11-0120:~$ javac
The program 'javac' can be found in the following packages:
 * openjdk-6-jdk
 * ecj
 * gcj-4.4-jdk
 * gcj-4.6-jdk
 * gcj-4.5-jdk
 * openjdk-7-jdk
Try: sudo apt-get install <selected package>
Run Code Online (Sandbox Code Playgroud)

我已经安装了openjdk,但无论如何我试过它:

tarskin@5-PARA-11-0120:~$ sudo apt-get install openjdk-6-jdk
[sudo] password for tarskin: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
openjdk-6-jdk is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
tarskin@5-PARA-11-0120:~$ 
Run Code Online (Sandbox Code Playgroud)

我知道我必须做一些愚蠢的事情,但我不知道是什么,如果有人能指出正确的方向,那将非常感激......

干杯

编辑:找到关于我的java发行版的"新"实例的一些其他奇怪的方面,它似乎没有认识到例如应该来自正则表达式导入耸肩的 '模式'或'匹配器' .

java openjdk javac

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

Numpy数组创建

首先,我将为这个问题的任意性道歉,但我正在重写我的一些脚本使用Numpy数组而不是嵌套的python列表(性能和内存),但我仍在努力完成他们的声明.

我试图使用numpy数组创建一个结构,我开始在数组中的1000(任意值)元素,其中每个元素应包含一个浮点数(如[x] [0])和一个包含坐标的嵌套数组(所以10.0000 x 2浮动PER顶级元素)(如[x] [1],嵌套数组中的每个元素都可以作为[x] [1] [y] [z]访问,其中y是嵌套数组中的元素,z指定哪个2坐标).以下问题嵌套结构化Numpy数组创建了一个相同的结构(作为我的问题和我想要的结构的参考).

原理图原始数据示例:

time 0
  m/z 10 int 10
  m/z 20 int 20
  m/z 30 int 1000
  ...
time 1
  <repeat>
Run Code Online (Sandbox Code Playgroud)

我已经读过我必须使用dtype部分来定义嵌套数组,但是我不太确定空数组的维度部分,有人能帮我一把吗?这是我到目前为止所提出的.

data=np.zeroes((1000,2 /* Now add nested array */), dtype=[('time', 'f'), [('m/z','f'), ('intensity','f')]])

PS:矩阵可能是更好的选择吗?

python arrays numpy

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

为什么设置指向NULL的指针会在Valgrind中给出错误/警告?

我有一个包含一些元素的结构,我在循环中释放了这个结构的内存,大致如下:

for (i = 0; i < teller; i++) {
   free((glycan+i)->desc);
}
free(glycan)
Run Code Online (Sandbox Code Playgroud)

我假设指针仍然指向空的内存块,因此我想将它们设置为NULL,如下所示:

for (i = teller; i > 0; i--) {
    (glycan+i)->desc = NULL;
}
glycan = NULL;
Run Code Online (Sandbox Code Playgroud)

然而Valgrind告诉我一些我不太懂的东西:

==11783== Invalid write of size 4
==11783==    at 0x8048F49: main (spectral_matcher.c:122)
==11783==  Address 0x431c070 is 72 bytes inside a block of size 28,000 free'd
==11783==    at 0x4027C02: free (vg_replace_malloc.c:366)
==11783==    by 0x8048F2C: main (spectral_matcher.c:121)
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释为什么会发生这种警告/错误以及我应该采取哪些不同的方法来解决它?

编辑:我知道我在释放后将指针设置为NULL,释放只将内存标记为空闲,因此指针仍然完整(如果我没有记错),我随后希望将其设置为NULL.

c valgrind pointers

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

我们目前在"for x in y:"循环中使用哪个元素

for x in y:迭代列表的python语法必须以某种方式记住指针当前在哪个元素?我将如何获取该值,因为我试图在不诉诸的情况下解决这个问题 for index, x in enumerate(y):

我想要这样做的技术原因是我假设enumerate()成本性能虽然以某种方式访问​​已存在的"指针"不会.我从答案中看到,但是这个指针非常私密且无法访问.

我想要这样做的功能原因是,如果当前元素浮点值远离"期望的"浮点范围,则能够跳过例如100个元素.

- 答案 -

解决方法如下(纯示意图):

# foo is assumed to be ordered in this example
foo = [1,2,3,4,5,6....,99,100]
low = 60
high = 70
z = iter(foo)
for x in z:
    if x < low-10
        next(islice(z,10,10),None)
    if x > high
        break
Run Code Online (Sandbox Code Playgroud)

python loops list

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

编写嵌套if语句(包含不同条件)的优雅方式

我有4个变量(包含0.0到1.0的相对值),我想检查这些变量中至少有2个高于0.01,其中1个必须高于0.05.我写了以下块:

if rel1 > 0.05:
    if rel2 > 0.01 or rel3 > 0.01 or rel4 > 0.01:
        print "Yay" # Filler line
elif rel2 > 0.05:
    if rel1 > 0.01 or rel3 > 0.01 or rel4 > 0.01:
        print "Yay" # Filler line
elif rel3 > 0.05:
    if rel1 > 0.01 or rel2 > 0.01 or rel4 > 0.01:
        print "Yay" # Filler line
elif rel4 > 0.05:
    if rel1 > 0.01 or rel2 > 0.01 or rel3 > 0.01: …
Run Code Online (Sandbox Code Playgroud)

python if-statement

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

标签 统计

python ×3

arrays ×1

c ×1

if-statement ×1

java ×1

javac ×1

list ×1

loops ×1

numpy ×1

openjdk ×1

pointers ×1

r ×1

scatter-plot ×1

valgrind ×1