我在R中有一个data.frame.它包含很多数据:来自许多(125)数组的基因表达水平.我想要Python中的数据,主要是因为我在R中的无能,以及这应该是一个30分钟的工作.
我想以下代码工作.要理解这段代码,请知道变量path包含数据集的完整路径,在加载时,它会给我一个名为的变量immgen.知道这immgen是一个对象(Bioconductor ExpressionSet对象)并exprs(immgen)返回一个包含125列(实验)和数万行(命名基因)的数据框.(以防万一它不清楚,这是Python代码,使用robjects.r来调用R代码)
import numpy as np
import rpy2.robjects as robjects
# ... some code to build path
robjects.r("load('%s')"%path) # loads immgen
e = robjects.r['data.frame']("exprs(immgen)")
expression_data = np.array(e)
Run Code Online (Sandbox Code Playgroud)
这段代码运行,但expression_data很简单array([[1]]).
我很确定这e不代表exprs()由于以下内容而生成的数据框:
In [40]: e._get_ncol()
Out[40]: 1
In [41]: e._get_nrow()
Out[41]: 1
Run Code Online (Sandbox Code Playgroud)
但那又有谁知道呢?即使它e确实代表我的data.frame,它不直接转换为数组也足够公平 - 数据框中的数据框比数组(rownames和colnames)更多,所以也许生活不应该那么容易.但是我仍然无法弄清楚如何执行转换.文档对我来说有点过于简洁,尽管我对文档标题的有限理解意味着这应该是可能的.
有人有什么想法?
我有一个看起来像这样的data.frame
> head(df)
Memory Memory Memory Memory Memory Naive Naive
10472501 6.075714 5.898929 6.644946 6.023901 6.332126 8.087944 7.520194
10509163 6.168941 6.495393 5.951124 6.052527 6.404401 7.152890 8.335509
10496091 10.125575 9.966211 10.075613 10.310952 10.090649 11.803949 11.274480
10427035 6.644921 6.658567 6.569745 6.499243 6.990852 8.010784 7.798154
10503695 8.379494 8.153917 8.246484 8.390747 8.346748 9.540236 9.091740
10451763 10.986717 11.233819 10.643245 10.230697 10.541396 12.248487 11.823138
Run Code Online (Sandbox Code Playgroud)
我想找到Memory列的平均值和Naive列的平均值.该aggregate函数聚合行.这data.frame可能会有大量的行,因此aggregate通过colnames原始应用的转置使data.frame我感觉不好,并且通常很烦人:
> head(t(aggregate(t(df),list(colnames(df)), mean)))
[,1] [,2]
Group.1 "Memory" …Run Code Online (Sandbox Code Playgroud) 我想在3页的PDF文件中安排3x3网格布局.我想在三个页面中的任意网格位置绘图.我知道如何使用某些选项来安排多个子图layout=c(3,3).我可以弄清楚如何使用网格包在单个绘图上排列3x3布局,然后决定选择要使用的绘图.但是,我无法弄清楚如何在3页上布置3x3网格,然后选择要绘制的网格.
我希望grid.newpage()能解决我的问题,如下所示:
library(grid)
pdf(file="griddtest.pdf",paper="letter")
vp1 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5, just = c("left", "bottom"),
name = "vp1")
vp2 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5, just = c("left", "bottom"),
name = "vp2")
pushViewport(vp1)
grid.text("Some drawing in graphics region 1 on page 1",y = 0.8)
grid.newpage()
pushViewport(vp2)
grid.text("Some drawing in graphics region 2 on page 2",y = 0.8)
dev.off()
Run Code Online (Sandbox Code Playgroud)
但这只是生成第二页(我猜'新页'会覆盖旧页面,而不是制作新页面).
任何帮助将不胜感激!
我正在尝试使用d3绘制纽约地图.我从http://www.nyc.gov/html/dcp/html/bytes/dwndistricts.shtml下载了一堆shapefile .我已经使用http://converter.mygeodata.eu/将它们转换为geoJSON ,这样它们就在WGS 84中(我认为,我认为是纬度和经度).
我很确定geoJSON是有效的:我可以使用matplotlib绘制它,它看起来像纽约,并且数字似乎在有效范围内.这是我的javascript:
var path = d3.geo.path()
d3.select("body")
.append("svg")
.attr("height", 1000)
.attr("width", 1000)
.append("g")
.selectAll("path")
.data(data.features)
.enter()
.append("path")
.attr("d", path)
.style("stroke","black")
.style("stroke-width","1px")
Run Code Online (Sandbox Code Playgroud)
正如所宣传的那样,这是纽约市Albers投影的情节.我认为麻烦的是选择了投影的比例,以便美国适合一个漂亮的网页,使纽约的路径在屏幕的右侧略微波动.
什么是'正确的'方式(lemme试图声称是第一个说d3onic)来缩放geo.path()我的lat/lon的范围缩放到我的SVG的宽度和高度?
(小小的免责声明:道歉,如果我错过了一些明显的东西,这是我想在一天的最末端完成的项目)
给定一个environment对象e:
> e
<environment: 0x10f0a6e98>
> class(e)
[1] "environment"
Run Code Online (Sandbox Code Playgroud)
如何访问环境中的变量?
万一你好奇,我发现自己有这个environment对象.我没有制作它,Bioconductor的包装制作了它.您也可以使用以下命令制作它:
library('GEOquery')
eset <- getGEO("GSE4142")[[1]]
e <- assayData(eset)
Run Code Online (Sandbox Code Playgroud) 我不太确定javascript,DOM或d3.js的哪个方面暴露了我缺乏的知识:只是知道我很遗憾地问这样一个基本问题如下.我是新来的.
我有一个这样的json:
[{"link":"a", "count": 3}, {"link":"b", "count": 4}, {"link":"c", "count": 2}]
Run Code Online (Sandbox Code Playgroud)
我想做一些看起来像的东西
<ul>
<li> <a>a</a> (3)</li>
<li> <a>b</a> (4)</li>
<li> <a>c</a> (2)</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
使用d3.js(解决显而易见的问题:我想用d3做更多的事情,这只是抓住了我遇到的问题).
<ul>在我的html中弹出一个标签后,在回调的某个地方,d3.json我可以这样写:
d3.select("ul")
.selectAll("li")
.data(json)
.enter()
.append("li")
.append("a")
.text(function(d){return d.link})
Run Code Online (Sandbox Code Playgroud)
(虽然这是未经测试的!javascript人们如何测试一小段代码?).这将(可能)给我
<ul>
<li><a>a</a></li>
<li><a>b</a></li>
<li><a>c</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
但现在我无法摆脱<a>标签!this在列表项标签结束之前,我无法弄清楚是什么不合理的组合和选择父母或我需要做些什么来处理额外的信息.我需要做什么?
我正在尝试在EC2中使用一个品牌闪亮的新coreos集群上使用fleet部署nsqlookupd.这是我的systemd单元文件:
[Unit]
Description=nsqlookupd service
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill nsqlookupd
ExecStartPre=-/usr/bin/docker rm nsqlookupd
ExecStart=/usr/bin/docker run -d --name=nsqlookupd -e BROADCAST_ADDRESS=$COREOS_PUBLIC_IPV4 -p 4160:4160 -p 4161:4161 mikedewar/nsqlookupd
ExecStartPost=/usr/bin/etcdctl set /nsqlookupd_broadcast_address $COREOS_PUBLIC_IPV4
ExecStop=/usr/bin/docker stop -t 1 nsqlookupd
ExecStopPost=/usr/bin/etcdctl rm /nsqlookupd_broadcast_address
Run Code Online (Sandbox Code Playgroud)
如果我只是运行ExecStart命令,我已经验证了容器工作正常.我的码头日志看起来像
~ $ docker logs nsqlookupd
2014/08/08 02:23:58 nsqlookupd v0.2.29-alpha (built w/go1.2.2)
2014/08/08 02:23:58 TCP: listening on [::]:4160
2014/08/08 02:23:58 HTTP: listening on [::]:4161
Run Code Online (Sandbox Code Playgroud)
我的fleetctl期刊看起来像
$ fleetctl journal nsqlookupd.service
-- Logs begin at Sun 2014-08-03 12:49:00 UTC, end at Fri 2014-08-08 …Run Code Online (Sandbox Code Playgroud) 我不明白time.Duration在Go中分割a是什么意思。
例如,这非常可爱:
d,_ := time.ParseDuration("4s")
fmt.Println(d/4)
Run Code Online (Sandbox Code Playgroud)
打印1s。这是ace,因为(天真的)4秒除以4是1秒。
但是,当我们发现分母中的4必须是一个持续时间时,就会有些困惑。因此,尽管:
d1 := time.Duration(4)
fmt.Println(d/d1)
Run Code Online (Sandbox Code Playgroud)
也可以打印1s,我们知道d1实际上是这样4ns,我完全不相信4秒除以4纳秒就是1秒。
我很困惑,因为持续时间除以持续时间应该是无量纲的(我想是吧?),而持续时间除以无量纲的数字应该具有时间单位。
而且我知道!=单位的类型,但是我显然误会了某些东西,或者很可能是一组东西。任何帮助清除此问题的方法将不胜感激!
这是上述示例的游戏场。https://play.golang.org/p/Ny2_ENRlX6。仅出于上下文考虑,我试图计算事件之间的平均时间。我可以退一步使用浮子几秒钟,但是我试图留在time.Duration陆地上。
我正在尝试解析一个简单的JSON文件.我是javascript,JSON和jquery的新手.我想提取JSON文件中的信息,以便稍后使用protovis绘制它.我的JSON格式正确,并在JSON lint中验证.
我试图通过解析JSON对象的responseText来实现这一点,如下所示:
var json = $.getJSON("week_13.json").responseText;
var week13 = $.parseJSON(json);
Run Code Online (Sandbox Code Playgroud)
希望第13周是我可以访问的东西.请注意,我不打算在$.getJSON调用中使用回调函数,因为我只想访问变量,以便稍后可以绘制它们.
我正在使用Chrome及其控制台来试图找出正在发生的事情.在此代码中,变量json似乎是一个空字符串.但是,如果我在Chrome中的javascript控制台中写道:
var json = $.getJSON("week_13.json");
Run Code Online (Sandbox Code Playgroud)
json是一个XMLHttpRequest对象,它的responseText属性是一个包含我的JSON的大字符串.
var text = json.responseText;
Run Code Online (Sandbox Code Playgroud)
是一个很好的字符串然后如果我调用jquery的解析器
var data = $.parseJSON(text);
Run Code Online (Sandbox Code Playgroud)
那么data现在是我想要的对象.但是,如果我复制和粘贴我原来的两行到控制台我有没有运气,如果我使用扩展版本的一株json,text和data我原来的网页变量它不工作:
var json = $.getJSON("week_13.json");
var text = json.responseText;
var data = $.parseJSON(json);
Run Code Online (Sandbox Code Playgroud)
在这种情况下text是一个空字符串.
我完全糊涂了.如果有人能让我知道我做错了什么,并就如何使这项工作给出一些指示,我会非常高兴!如果有任何其他有关我如何处理这方面的信息,请告诉我们回答这个问题!
我有一个类似的数据结构
[
{"name":"foo", "links":["a", "b", "c"]},
{"name":"bar", "links":["d", "e", "f"]}
]
Run Code Online (Sandbox Code Playgroud)
我想列一个清单
<ul>
<li> foo </li>
<li> bar </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
当我点击foo时,扩展为
<ul>
<li> foo
<ul>
<li> a </li>
<li> b </li>
<li> c </li>
</ul>
</li>
<li> bar </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想用d3.js这样做.制作热门列表非常简单有趣:
toplist = d3.select("body").append("ul");
toplist.selectAll("li")
.data(data)
.enter()
.append("li")
.text(function(d){return d.name;})
Run Code Online (Sandbox Code Playgroud)
添加子列表甚至很容易:
items = toplist.append("ul")
.selectAll("li")
.data(function(d){return d.links})
.enter()
.append("li")
.text(function(d){return d})
Run Code Online (Sandbox Code Playgroud)
我可以on("click"..在每个li中添加一个toplist,比如
toplist.selectAll("li")
.data(data)
.enter()
.append("li")
.text(function(d){return d.name;})
.on("click", expand)
Run Code Online (Sandbox Code Playgroud)
并将子列表代码移动到名为expand的函数中.看起来像
function expand(d,i){
Run Code Online (Sandbox Code Playgroud)
然后在其中包含上述 …
我有两个字符串列表,在一个更好的世界中,它将是一个列表.我需要连接列表,但第一个列表的最后一个元素需要与第二个列表的第一个元素连接.所以这些家伙:
list1 = ["bob", "sal"]
list2 = ["ly", "nigel"]
Run Code Online (Sandbox Code Playgroud)
需要成为
out = ["bob", "sally", "nigel"]
Run Code Online (Sandbox Code Playgroud)
所以这并不难,但我想知道为什么我的一个班轮不起作用?
out = (list1[-1] += list2.pop(0)) += list2
Run Code Online (Sandbox Code Playgroud)
为什么这不等于
out = list1[-1]+=list2.pop(0)
out += list2
Run Code Online (Sandbox Code Playgroud)
?
通过大约400K的记录,我必须在很大程度上做到这一点.所以,如果有人有更好的方法来做到这一点,那么我将不胜感激!
r ×4
d3.js ×3
json ×2
python ×2
bioconductor ×1
coreos ×1
dataframe ×1
docker ×1
dom ×1
geospatial ×1
go ×1
javascript ×1
jquery ×1
list ×1
namespaces ×1
numpy ×1
r-grid ×1
rpy2 ×1