我知道这是一个真正的noob问题,但是如何将数据框列表附加到数据框以形成新列表,所有data.frames在列表中的同一级别?
我的一些尝试:
> df <- data.frame(time=1:5)
> df
time
1 1
2 2
3 3
4 4
5 5
> innerlist <- list(df,df,df)
> innerlist
[[1]]
time
1 1
2 2
3 3
4 4
5 5
[[2]]
time
1 1
2 2
3 3
4 4
5 5
[[3]]
time
1 1
2 2
3 3
4 4
5 5
> outerlist <- list(df,innerlist)
> outerlist
[[1]]
time
1 1
2 2
3 3
4 4
5 5
[[2]] …Run Code Online (Sandbox Code Playgroud) 可能重复:
R限制中的并行处理
我在R多核中编写了一些代码,我在24核机器上运行它.实际上只有12个核心,但它们是超线程的,所以看起来有24个.
这有点奇怪:所有线程都运行在同一个核心上!因此,他们每个人只使用少量的cpu,而不是每个都运行在单个核心上,并且咀嚼所有可用的核心.
为简单起见,我只运行4个线程:
mclapply( 1:30, function(size) {
# time consuming stuff that is cpu bound (think "forecast.ets" et al)
}, mc.cores = 4, mc.preschedule = F )
Run Code Online (Sandbox Code Playgroud)
在运行此之前,已经有一个R进程在一个核心上运行,使用该核心容量的100%:

接下来,我启动"多核过程",另外4个线程争夺同一个核心!:

......所以,当他们每个人能够获得100%的核心时,他们每人获得一个核心的12%,或大约1%的可用处理能力.此外,另一个R进程现在只获得50%的核心.
操作系统是64位的Ubuntu 12.04.硬件是英特尔.R是版本2.15.2"捣蛋"
思考?(我知道我可以使用降雪,但我有很多变数,而且我真的不想拥有sfExport所有这些!)
编辑:哦,我想某处有一些全局锁定?但是,为什么两个完全独立的R进程之间会发生冲突?我可以并行运行两个R进程,每个进程占用核心CPU的100%.
编辑2:感谢Dirk的指针,我重建了openblas,现在看起来更健康了!:

如何解决scala微风中的矩阵线性系统?即,我有Ax = b,其中A是矩阵(通常是正定),x和b是向量.
我可以看到有一个cholesky分解可用,但我似乎找不到解算器?(如果是matlab我可以做x = b\A.如果它是scipy我可以做x = A.solve(b))
我有一堆大型数据帧,所以每次我想显示它们时,我都要使用head:
head( blahblah(somedata) )
Run Code Online (Sandbox Code Playgroud)
在最初的几百次之后,打字头一直变老,所以如果可能的话,我想要一个简单的方法来做到这一点.与java相比,R的一个很酷的事情就是这样的事情通常很容易,如果你知道秘密咒语.
我在选项中搜索,发现max.print,几乎可以工作,除了现在有时间延迟.
head( blahblah(somedata) )
Run Code Online (Sandbox Code Playgroud)
....是瞬间的(在我的感知范围内)
options(max.print=100)
blahblah(somedata)
Run Code Online (Sandbox Code Playgroud)
....大约需要3秒钟,比打字要长 head
head打印大型数据结构时是否有某种方法可以自动应用?
一段代码,它重现了这种行为:
long_dataset = data.frame(a = runif(10e5),
b = runif(10e5),
c = runif(10e5))
system.time(head(long_dataset))
options(max.print = 6)
system.time(print(long_dataset))
Run Code Online (Sandbox Code Playgroud) 我想为我在 Windows 7 上运行的 lwjgl 进程添加一个任务栏图标。
Display.setIcon 成功更改了窗口左上角的图标,但不在任务栏中。
做什么?
我的代码,类似于:
ArrayList<ByteBuffer> byteBuffers = new ArrayList<ByteBuffer>();
byteBuffers.add( ImageHelper.loadImageAsIconImage("stickmanicon32x32.png") );
byteBuffers.add( ImageHelper.loadImageAsIconImage("stickmanicon16x16.png") );
System.out.println( "taskbaricon result: " + Display.setIcon(byteBuffers.toArray(new ByteBuffer[]{})) );
Run Code Online (Sandbox Code Playgroud)
我也尝试添加 40x40 图像,但没有变化。
我最近从几个人那里听说,回声状态网络适用于时间序列建模.所以我觉得值得一试.
http://en.wikipedia.org/wiki/Echo_state_network
它是一种循环网络,只学习输出层中的权重,其他权重随机化.
R中的库/包在多大程度上可用于创建回声状态网络?
(注意:有这样一个问题:R中的神经网络包可能是相关的,但它要求'递归'网络,而我正在寻找'循环'或'回声状态'网络).
我发现当存储库是私有的时,通过简单的例如嵌入在jupyter标记中的图像没有显示在github笔记本查看器中。
我尝试了一堆黑客攻击。
显然在4.xx中有将图像作为base64元数据嵌入的功能吗?但是我在自己的笔记本上看不到它。
我有一个主配置文件,比方说config.yaml:
num_layers: 4
embedding_size: 512
learning_rate: 0.2
max_steps: 200000
Run Code Online (Sandbox Code Playgroud)
我希望能够在命令行上使用另一个文件(例如 say )覆盖它,big_model.yaml我在概念上使用它,例如:
python my_script.py --override big_model.yaml
Run Code Online (Sandbox Code Playgroud)
可能big_model.yaml看起来像:
num_layers: 8
embedding_size: 1024
Run Code Online (Sandbox Code Playgroud)
我希望能够覆盖任意数量的此类文件,每个文件的优先级都高于前一个文件。假设我也有fast_learn.yaml
learning_rate: 2.0
Run Code Online (Sandbox Code Playgroud)
所以我想从概念上做一些类似的事情:
python my_script.py --override big_model.yaml --override fast_learn.yaml
Run Code Online (Sandbox Code Playgroud)
在九头蛇中做到这一点的最简单/最标准的方法是什么?(或者可能在 omegaconf 中?)
(请注意,我希望这些覆盖文件理想地只是标准 yaml 文件,理想情况下覆盖早期的 yaml 文件;尽管如果我必须使用覆盖 DSL 来编写,我可以这样做,如果这是最简单/最好的/最标准的方式)
在我结束-7之前,像r中的数据帧之间的两个匹配,让我说我已经阅读了以下页面:
实际上,最后一个与我想要的非常相似,但不一样,因为我的专栏不同
我有两个数据帧,比方说:
> d <- data.frame(year=c(2004,2004,2006),month = c(1,5,3), height = c(1000,2000,3000) )
> d
year month height
1 2004 1 1000
2 2004 5 2000
3 2006 3 3000
> e <- data.frame(year=c(2004),month=c(5), height = c(9999))
> e
year month height
1 2004 5 9999
Run Code Online (Sandbox Code Playgroud)
显然,真实数据比这长.
我想将e中的值合并到d中
尝试原始合并:
> merge(d,e)
[1] year month height
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)
好.所以添加"by":
> merge(d,e,by=c("year","month"))
year month height.x height.y
1 2004 5 2000 9999
Run Code Online (Sandbox Code Playgroud)
好吧,它做了一个内连接,并删除了d中的所有原始数据.所以尝试左外连接:
> merge(d,e,by=c("year","month"),all.x …Run Code Online (Sandbox Code Playgroud) 为什么reshape2 melt返回value= NA我吗?
它可以重塑,但不是reshape2:
这是一个示例数据文件:
"","station_id","year","month","day","h1","h2","h3","h4","h5","h6","h7","h8","h9","h10","h11","h12","h13","h14","h15","h16","h17","h18","h19","h20","h21","h22","h23","h24"
"1",1,2004,1,1,46,46,45,41,39,35,33,33,36,47,53,54,55,55,55,55,52,46,40,40,39,38,40,41
"2",1,2004,1,2,43,44,46,46,47,47,47,47,47,47,47,49,52,56,54,56,57,53,50,47,46,45,45,45
"3",1,2004,1,3,45,46,46,44,43,46,46,47,51,55,56,59,65,68,69,68,68,65,64,63,62,63,63,62
"4",1,2004,1,4,63,62,62,62,60,60,60,62,60,64,64,66,71,70,71,72,71,68,67,67,65,64,65,64
"5",1,2004,1,5,64,63,65,64,64,64,64,64,65,66,66,67,68,68,66,66,66,66,63,54,52,49,47,47
"6",1,2004,1,6,47,46,45,43,41,41,39,39,40,43,45,44,45,46,46,46,45,39,39,39,38,36,32,32
Run Code Online (Sandbox Code Playgroud)
让我们说它保存为/tmp/foo.csv,然后:
使用重塑:
$ R
...
Type 'q()' to quit R.
> library("reshape")
Loading required package: plyr
Attaching package: ‘reshape’
The following object(s) are masked from ‘package:plyr’:
rename, round_any
> hlist <- NULL; for(z in 1:24) { hlist <- cbind(hlist, sprintf("h%d",z)) }
>
> thh <- read.csv('/tmp/foo.csv')
> thm <- melt(thh,measure.vars=hlist,variable="hour")
> head(thm)
station_id year month day hour value
1 1 2004 1 …Run Code Online (Sandbox Code Playgroud) 在OpenCL中,这是C-99,我们有两个选项来创建类似于函数的东西:
我听说过某处(在任何地方找不到任何官方引用,只是在stackoverflow上的某个地方看到它,一次),这些函数几乎总是在实践中内联,因此使用函数在性能方面是否正常?
但宏基本上保证内联宏.但容易受到错误的影响,例如,如果不在所有内容周围添加括号,而不是类型安全.
在实践中,哪有效?什么是最标准的?什么是最便携的?
我想我的要求是以下几种组合:
由于被问到"明显"问题而被降低风险的极大风险,如何找到R中两个小时之间的差异?
> ISOdate(2004,1,6) - ISOdate(2004,1,1)
Time difference of 5 days
> as.POSIXlt(ISOdate(2004,1,6) - ISOdate(2004,1,1))
Error in as.POSIXlt.default(ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)) :
do not know how to convert 'ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)' to class "POSIXlt"
> (ISOdate(2004,1,6) - ISOdate(2004,1,1))$year
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$year :
$ operator is invalid for atomic vectors
> (ISOdate(2004,1,6) - ISOdate(2004,1,1))$mon
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$mon :
$ operator is invalid for …Run Code Online (Sandbox Code Playgroud) 我想用LSF提交一份工作:
在没有LSF的情况下,我只需在4个节点上启动mpi,例如:
mpirun -hosts host1,host2,host3,host4 -np 4 ./myprocess --numthreads = 12
但是,在LSF存在的情况下,我看不出怎么做?我确信这可能是一种非常标准的方法,但我对LSF来说还是个新手.我用Google搜索,但答案对我来说并不是很明显.我在LSF中发现了混合MPI/OpenMP,但它似乎并不完全相同,似乎一次只需要一台主机.