我有两个水平对齐的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) 我有一个字符串,我想提取一个子集.这是更大的Python脚本的一部分.
这是字符串:
import re
htmlString = '</dd><dt> Fine, thank you. </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的初学者.
我的脑袋暂时停滞不前.我想基于较小的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)
这感觉应该是非常直接的.
任何指针都将受到高度赞赏,谢谢!
如何从具有两列的 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)
任何指针将不胜感激,谢谢!
我想重塑/融化不对称矩阵,以便当两个列单元根据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) 我是在MacOSX上首次使用Postgres 9.3创建数据库.
假设我有桌子A
和B
.Table A
从空虚和Table B
充满开始.我想的条目的数量在列all_names
在表B
为等于number
每个names
表A
等表B
的下方.因此,names
应包含每个唯一的入口all_names
和number
计数.我还不习惯语法,所以我真的不知道如何去做.该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)
更新:这是正确的方法吗? …
我在 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) 假设我有一个嵌套的向量列表.
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) 我是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
我试图匹配一列中的特定值,并将其替换为另一列(同一行)中的相应值.这可能是很容易的......我一直在试图找到一个解决方案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)
(不需要开关).这是我感兴趣的第一栏.
任何指针都将不胜感激,谢谢!
我的问题是,即使我使用utf-8,使用正则表达式和re.search()的Python也无法识别重音.这是我的代码串;
#! /usr/bin/python
-*- coding: utf-8 -*-
import re
htmlString = '</dd><dt> Fine, thank you. </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.', ' ', '</dt><dd>', 'Molt', 'b')
Run Code Online (Sandbox Code Playgroud)
所以问题是它不能识别é并因此停止.任何帮助,将不胜感激.我是一个Python初学者.