小编jO.*_*jO.的帖子

为组合ggplots添加一个共同的图例

我有两个水平对齐的ggplots grid.arrange.我查看了很多论坛帖子,但我尝试的所有内容似乎都是现在更新并命名为其他内容的命令.

我的数据看起来像这样;

# Data plot 1                                   
        axis1     axis2   
group1 -0.212201  0.358867
group2 -0.279756 -0.126194
group3  0.186860 -0.203273
group4  0.417117 -0.002592
group1 -0.212201  0.358867
group2 -0.279756 -0.126194
group3  0.186860 -0.203273
group4  0.186860 -0.203273

# Data plot 2   
        axis1     axis2
group1  0.211826 -0.306214
group2 -0.072626  0.104988
group3 -0.072626  0.104988
group4 -0.072626  0.104988
group1  0.211826 -0.306214
group2 -0.072626  0.104988
group3 -0.072626  0.104988
group4 -0.072626  0.104988

#And I run this:
library(ggplot2)
library(gridExtra)


groups=c('group1','group2','group3','group4','group1','group2','group3','group4')

x1=data1[,1]
y1=data1[,2]

x2=data2[,1]
y2=data2[,2]

p1=ggplot(data1, aes(x=x1, y=y1,colour=groups)) + geom_point(position=position_jitter(w=0.04,h=0.02),size=1.8) …
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2 gridextra

118
推荐指数
9
解决办法
9万
查看次数

Python + Regex:AttributeError:'NoneType'对象没有属性'groups'

我有一个字符串,我想提取一个子集.这是更大的Python脚本的一部分.

这是字符串:

import re

htmlString = '</dd><dt> Fine, thank you.&#160;</dt><dd> Molt bé, gràcies. (<i>mohl behh, GRAH-syuhs</i>)'
Run Code Online (Sandbox Code Playgroud)

我要拉出" Moltbé,gràcies.mohlbehh,GRAH-syuhs ".为此,我使用正则表达式re.search:

SearchStr = '(\<\/dd\>\<dt\>)+ ([\w+\,\.\s]+)([\&\#\d\;]+)(\<\/dt\>\<dd\>)+ ([\w\,\s\w\s\w\?\!\.]+) (\(\<i\>)([\w\s\,\-]+)(\<\/i\>\))'

Result = re.search(SearchStr, htmlString)

print Result.groups()
AttributeError: 'NoneType' object has no attribute 'groups'
Run Code Online (Sandbox Code Playgroud)

既然Result.groups()不起作用,我想做的提取也没有(即Result.group(5)Result.group(7)).但我不明白为什么我会收到这个错误?正则表达式在TextWrangler中有效,为什么不在Python中呢?我是Python的初学者.

python regex

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

匹配基于多列的两个data.frames

我的脑袋暂时停滞不前.我想基于较小的data.frame(mdf)中的列来匹配/提取来自更大的data.frame(df)的数据.我要坚持的是我想要匹配多个列(在这种情况下为两个).我一直在使用例如尝试不同的方法merge,which,match %in%但不就成功了.

# Dummy example

# Large df
df <- mtcars[1:6,1:3]
df$car_1 <- rownames(df)
df$car_2 <- rownames(tail(mtcars))

# df to match
mdf <- df[c("car_1","car_2")][3:6,]

rownames(df) <- NULL
rownames(mdf) <- NULL
Run Code Online (Sandbox Code Playgroud)

期望的输出看起来像

 mpg cyl disp             car_1          car_2
22.8   4  108        Datsun 710 Ford Pantera L
21.4   6  258    Hornet 4 Drive   Ferrari Dino  
18.7   8  360 Hornet Sportabout  Maserati Bora
18.1   6  225           Valiant     Volvo 142E
Run Code Online (Sandbox Code Playgroud)

这感觉应该是非常直接的.

任何指针都将受到高度赞赏,谢谢!

r match dataframe

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

从 data.frame 创建二进制矩阵

如何从具有两列的 data.frame 创建二进制矩阵,其中第一列代表物种,另一列代表它们的区域?data.frame 为高格式,如下所示

species region
species1 1
species1 2
species1 3
species2 2
species2 4
species2 5
species2 6
species3 1
species3 2
species4 5
species5 3
species5 4
Run Code Online (Sandbox Code Playgroud)

并且矩阵将所有独特的物种作为行,将所有独特的区域作为列。矩阵将填充1s存在0s的物种和不存在的物种,如下所示

         1  2  3  4  5  6
species1 1  1  1  0  0  0
species2 0  1  0  1  1  1
species3 1  1  0  0  0  0
species4 0  0  0  0  1  0
species5 0  0  1  1  0  0
Run Code Online (Sandbox Code Playgroud)

任何指针将不胜感激,谢谢!

binary r matrix dataframe

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

根据rowKey重塑/熔化不对称矩阵

我想重塑/融化不对称矩阵,以便当两个列单元根据rowKey非零时,任意两行在列之间求和.我尝试了各种选项,但没有一个有效.我正在寻找适用于大型非对称矩阵的通用解决方案.

#Dummy data    
set.seed(123)    

mat <- matrix(rbinom(20,100,0.01),4,5,dimnames=list(LETTERS[1:4],letters[1:5]))

mat
  a b c d e
A 0 3 1 1 0
B 2 0 1 1 0
C 1 1 3 0 0
D 2 2 1 2 3

rowKey <- c("A"="N1","B"="N1","C"="N2","D"="N2")

#Desired output

    N1 N2 N3 value
1   A  C  a     0
2   A  C  b     4
3   A  C  c     4
4   A  C  d     0
5   A  C  e     0
6   B  C  a     3
7   B …
Run Code Online (Sandbox Code Playgroud)

r matrix combinatorics reshape

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

根据另一个表中的数字在一个表中插入多行

我是在MacOSX上首次使用Postgres 9.3创建数据库.

假设我有桌子AB.Table A从空虚和Table B充满开始.我想的条目的数量在列all_names在表B为等于number每个namesA等表B的下方.因此,names应包含每个唯一的入口all_namesnumber计数.我还不习惯语法,所以我真的不知道如何去做.该birthday列是多余的.

一个

names | number
-------+------------
Carl  | 3
Bill  | 4
Jen   | 2
Run Code Online (Sandbox Code Playgroud)

 all_names | birthday
-------+------------
Carl       | 17/03/1980
Carl       | 22/08/1994
Carl       | 04/09/1951
Bill       | 02/12/2003
Bill       | 11/03/1975
Bill       | 04/06/1986
Bill       | 08/07/2005
Jen        | 05/03/2009
Jen        | 01/04/1945
Run Code Online (Sandbox Code Playgroud)

更新:这是正确的方法吗? …

sql postgresql relational-database generate-series

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

返回多个值并以类似数组的方式填充列

我在 MacOSX 上使用 Postgres 9.3。

我想知道如何返回多个值(取决于某些标准)并使用它们以类似列表/数组的方式填充列?

--DUMMY DATA

CREATE TABLE tbl (
   id VARCHAR(2) PRIMARY KEY
  ,name TEXT
  ,year_born NUMERIC
  ,nationality TEXT
);
INSERT INTO tbl(id, name, year_born, nationality)
VALUES ('A1','Bill',2001,'American')
      ,('B1','Anna',1997,'Swedish')
      ,('A2','Bill',1991,'American')
      ,('B2','Anna',2004,'Swedish')
      ,('B3','Anna',1989,'Swedish')
      ,('A3','Bill',1995,'American');
SELECT * FROM tbl;

id | name | year_born | nationality
---+------+-----------+------------
A1 | Bill |   2001    |  American
B1 | Anna |   1997    |  Swedish
A2 | Bill |   1991    |  American
B2 | Anna |   2004    |  Swedish
B3 | Anna | …
Run Code Online (Sandbox Code Playgroud)

sql postgresql list distinct aggregate-functions

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

通过平均向量展平嵌套列表

假设我有一个嵌套的向量列表.

lst1 <- list(`A`=c(a=1,b=1), `B`=c(a=1), `C`=c(b=1), `D`=c(a=1,b=1,c=1))
lst2 <- list(`A`=c(b=1), `B`=c(a=1,b=1), `C`=c(a=1,c=1), `D`=c(a=1,c=1))
lstX <- list(lst1, lst2)
Run Code Online (Sandbox Code Playgroud)

如图所示,每个矢量A,B,C,D出现两次,a,b,c存在于不同频率.

如何平展列表以便在嵌套列表中a,b,c求和或平均,这将是最有效的方法,A,B,C,D如下所示.真正的列表有几十万个嵌套列表.

#summed
  a b  c
A 1 2 NA
B 2 1 NA
C 1 1  1
D 2 1  2

#averaged
  a   b   c
A 0.5 1   NA
B 1   0.5 NA
C 0.5 0.5 0.5
D 1   0.5 1
Run Code Online (Sandbox Code Playgroud)

nested r list flatten

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

Python:使用嵌套列表中的多个值从元组键创建一个dict

我是python的新手,我正在尝试使用元组作为键和嵌套列表作为多个值来创建字典.

该列表嵌套在三元组中; [[[Isolation source],[host],[country]]...etc]

示例如下:

value_list = [[['NaN'], ['sponge'], ['Palau']], [['skin'], ['fish'], ['Cuba']], [['claw'], ['crab'], ['Japan: Aomori, Natsudomari peninsula']]....]
Run Code Online (Sandbox Code Playgroud)

和键的元组;

key_tuple = ('AB479448', 'AB479449', 'AB602436',...)

因此,我希望输出看起来像这样;

dict = {'AB479448': [NaN, sponge, Palau], 'AB479449': [skin, fish, Cuba], 'AB602436': [claw, crab, Japan: Aomori, Natsudomari peninsula]
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的解决方案,但是我可以开展工作......例如字典理解;

dict = { i: value_list for i in key_tuple }
Run Code Online (Sandbox Code Playgroud)

上面给出了这个(使用不同的键但是将相同的值与它们相关联);

{'AB479448': [[[NaN, sponge, Palau]]], 'AB479449': [[[NaN, sponge, Palau]]], 'AB602436': [[[NaN, sponge, Palau]]]...etc..}
Run Code Online (Sandbox Code Playgroud)

不胜感激任何指点......谢谢!

python dictionary tuples nested-lists dictionary-comprehension

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

将列中的值替换为同一数据帧中另一列的相应值

我试图匹配一列中的特定值,并将其替换为另一列(同一行)中的相应值.这可能是很容易的......我一直在试图找到一个解决方案for loop,sub,subset,data.table但我还没有成功.必须有一个巧妙的方法来做到这一点.

示例数据,我们的目标是a在第一列中交换第二列中的相应值并再次输出列.

df <- data.frame(rbind(c('a','D'),c('H','W'),c('Q','E'),c('a','F'),c('U','P'),c('a','B')))

df$X1 <- as.character(df$X1)
df$X2 <- as.character(df$X2)

# not working
for (i in seq_along(df$X1)){
  a <- df$X1[i]
  b <- df$X2[i]
  x <- ifelse(a[i=='a'], a[i]<-b[i], do.nothing )
  print(x)
}
Run Code Online (Sandbox Code Playgroud)

输出就像这样;

   X1 X2
1  D  a
2  H  W
3  Q  E
4  F  a
5  U  P
6  B  a
Run Code Online (Sandbox Code Playgroud)

(不需要开关).这是我感兴趣的第一栏.

任何指针都将不胜感激,谢谢!

replace r pattern-matching dataframe

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

Python + Regex + UTF-8无法识别重音符号

我的问题是,即使我使用utf-8,使用正则表达式和re.search()的Python也无法识别重音.这是我的代码串;

#! /usr/bin/python
-*- coding: utf-8 -*-
import re

htmlString = '</dd><dt> Fine, thank you.&#160;</dt><dd> Molt bé, gràcies.'

SearchStr = '(\<\/dd\>\<dt\>)+ ([\w+\,\.\s]+)([\&\#\d\;]+)(\<\/dt\>\<dd\>)+ (\w+) (\w+)'

Result = re.search(SearchStr, htmlString)

if Result:
print Result.groups()

passavol23:jO$ catalanword.py
('</dd><dt>', 'Fine, thank you.', '&#160;', '</dt><dd>', 'Molt', 'b')
Run Code Online (Sandbox Code Playgroud)

所以问题是它不能识别é并因此停止.任何帮助,将不胜感激.我是一个Python初学者.

python regex utf-8

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