我制作了一个散点图,我希望有一个x轴的辅助轴.过去在2010年很容易做到,但我不知道微软在2013版Excel中将此选项放在哪里.
我有一个向量列表lis
,我需要匹配另一个向量vec
lis <- list(c(2,0,0),c(1,1,0), c(1,0,1), c(0,2,0), c(0,1,1), c(0,0,2))
vec <- c(1,1,0)
Run Code Online (Sandbox Code Playgroud)
所以我要么得到合理的输出
[1] FALSE TRUE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
或者只是lis
比赛中的位置
我一直在尝试这些方面:
unlist(lis) %in% vec
Run Code Online (Sandbox Code Playgroud)
但问题是数字的位置很重要,即区分c(1,1,0)
和c(1,0,1)
我无法做到的.我想避免for
循环,因为这需要非常有效(快速).
所以我有这个清单:
structure(list(scaf = structure(1L, .Label = "HE638", class = "factor"),
pos = 8L, scaf = structure(1L, .Label = "HE638", class = "factor"),
pos = 8L, scaf = structure(1L, .Label = "HE638", class = "factor"),
pos = 8L), .Names = c("scaf", "pos", "scaf", "pos", "scaf",
"pos"))
Run Code Online (Sandbox Code Playgroud)
我想得到一个data.frame,以便两列是scaf
和pos
这是我得到的:
do.call(rbind, poor.loci)
Run Code Online (Sandbox Code Playgroud)
期望的结果:
scaf pos
HE638 8
HE638 8
HE638 8
Run Code Online (Sandbox Code Playgroud) 我使用密度函数与SJ方法:
rdat <- rnorm(111111)
density(rdat, bw = "sj")
Error in bw.SJ(x, method = "ste") : sample is too sparse to find TD
Run Code Online (Sandbox Code Playgroud)
它似乎在大样本上失败,说明样本太稀疏.这种情况以前也有人问在这里,但自2008年以来有什么改变?对于这个/变通办法有没有任何修复?
编辑:限制似乎是 46341
我希望能够在y轴边缘绘制多个重叠的kde图(不需要x轴边距图).每个kde图将对应于颜色类别(有4个),因此我将有4个kde,每个描绘其中一个类别的分布.这是我得到的:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
x = [106405611, 107148674, 107151119, 107159869, 107183396, 107229405, 107231917, 107236097,
107239994, 107259338, 107273842, 107275873, 107281000, 107287770, 106452671, 106471246,
106478110, 106494135, 106518400, 106539079]
y = np.array([ 9.09803208, 5.357552 , 8.98868469, 6.84549005,
8.17990909, 10.60640521, 9.89935692, 9.24079133,
8.97441459, 9.09803208, 10.63753055, 11.82336724,
7.93663794, 8.74819285, 8.07146236, 9.82336724,
8.4429435 , 10.53332973, 8.23361968, 10.30035256])
x1 = pd.Series(x, name="$V$")
x2 = pd.Series(y, name="$Distance$")
col = …
Run Code Online (Sandbox Code Playgroud) 到目前为止我有这个.
import csv
ifile = open('file', 'rb')
reader = csv.reader(ifile,delimiter='\t')
ofile = open('file', 'wb')
writer = csv.writer(ofile, delimiter='\t')
findlist = ['A', 'G', 'C', 'T', 'Y', 'R', 'W', 'S', 'K', 'M', 'X', 'N', '-']
replacelist = ['AA', 'GG', 'CC', 'TT', 'CT', 'AG', 'AT', 'GC', 'TG', 'CA',
'NN', 'NN', '-']
rep = dict(zip(findlist, replacelist))
def findReplace(find, replace):
s = ifile.read()
s = s.replace(find, replace)
ofile.write(s)
for item in findlist:
findReplace(item, rep[item])
ifile.close()
ofile.close()
Run Code Online (Sandbox Code Playgroud)
它的作用是将A替换为AA.但是我想要的是将所有字母替换为中的字母replacelist
.我是python的新手,并不能完全弄清楚为什么它不能取代所有东西.
HE670865 399908 N N N N …
Run Code Online (Sandbox Code Playgroud) 我一直在做:
mylist<- c(2,5,19,29)
Reduce("+", mylist)
Run Code Online (Sandbox Code Playgroud)
结果:
[1] 55
Run Code Online (Sandbox Code Playgroud)
没有任何问题.但是,我需要做一个中位数,所以我做了:
Reduce(median, mylist)
Run Code Online (Sandbox Code Playgroud)
这给了我:
[1] 2
Run Code Online (Sandbox Code Playgroud)
但答案应该是:
median(unlist(hom))
[1] 12
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么Reduce()
这样做?
我想总结列表的所有元素.
mylist <- c(1,2,3,4,5,0,0,0)
mylistempty <- list()
mylist2 <- c(0,0,0,0)
Reduce('+', mylist)
Run Code Online (Sandbox Code Playgroud)
但是当你减少一个只包含的列表的空列表时,0
你会得到一个numeric(0)
我想做同样的事情sum()
,但是有一个列表.
r ×5
list ×2
python ×2
csv ×1
dataframe ×1
density-plot ×1
excel ×1
matplotlib ×1
seaborn ×1
vector ×1