小编Jot*_*ota的帖子

Ruby:操纵迭代器?

关于创建单向,延迟评估,可能无限的迭代器,我遇到了Ruby的问题.基本上,我正在尝试使用Ruby,就像我使用Haskell列表,以及在较小程度上使用Python生成器.

并不是我本身不理解它们; 我只是不知道如何像其他语言一样随意使用它们,而且我也不确定Ruby中的哪些方法会将它们变成背后的数组,将整个序列卸载到内存中是不必要的.

是的,我一直在研究Ruby参考手册.其实半小时,专注.或者显然不是.

例如,如果我要实现卡片组,它在Python中看起来像这样(未经测试):

# Python 3

from itertools import chain, count

face_ranks =
    dict(
        zip(
            ('jack', 'queen', 'king', 'ace'),
            count(11)))

sorted_deck =
    map(
        lambda suit:
            map(
                lambda rank:
                    {
                        'rank' : rank,
                        'suit' : suit
                    },
                chain(
                    range(2, 11),
                    face_ranks.keys())),
        ('clubs', 'diamonds', 'hearts', 'spades'))
Run Code Online (Sandbox Code Playgroud)

那么,我如何在Ruby中完成这项工作,完全避免使用数组呢?请注意,据我所知,上面的代码只使用元组和生成器:在任何时候都不会将整个序列转储到内存中,就像我使用了数组一样.我对上面的代码可能是错的,但是你得到了我想要的东西.

我如何链接迭代器(如Python的chain())?如何生成无限范围的迭代器(如Python的count())?如何在迭代器中添加一个数组(比如将元组传递给Python的链())而不将整个过程转换为数组?

我见过解决方案,但它们涉及阵列或不必要的复杂性,如光纤.

在Python中,我可以像数组一样简单地操作和抛出迭代器.我几乎可以把它们当作Haskell列表来对待,我最熟悉的就是它,而且在编码时我的想法就是这样.我对Ruby数组感到不舒服,这就是为什么我寻求其替代品的帮助.

我已经设法在互联网上获取有关它的信息,但我找不到任何涵盖Ruby中这种数据结构的基本操作?有帮助吗?

ruby arrays iterator enumerator

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

将音频文件拆分为任意大小的片段

我有一个大的声音文件(150 MB),我想分成一些更容易管理的大小文件,比如说有5分钟音频的文件.显然,最后一段将是<= 5分钟,那没关系.有没有办法轻松完成这类任务?

可以使用以下链接下载用于此问题的小样本.mp3文件:download.linnrecords.com/test/mp3/recit.aspx.

这是我到目前为止所尝试的.我使用readMP3from 导入数据tuneR并将使用该cutw函数,但是没有找到使用它的有效方法.

library(tuneR)

sample<-readMP3("recit.mp3") 

# the file is only 9.04 seconds long (44.1 Hz, 16-bit, sterio)
# so, for this example we can cut it into 0.5 second intervals)
subsamp1<-cutw(sample, from=0, to=0.5, output="Wave")

# then I would have to do this for each interval up to:
subsampn<-cutw(sample, from=9, to=9.04, output="Wave") 
# where I have to explicitly state the maximum second (i.e. 9.04), 
# unless there is a way I don't …
Run Code Online (Sandbox Code Playgroud)

audio file-io split r

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

CSS中的no-drop和not-allowed有什么区别?

我很惊讶地看到"无丢弃"和"不允许"的光标样式在CSS中本质上是相同的.那么,为什么我们都需要它们呢?

html css stylesheet

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

字符串拆分数字图案

我有一个如下所示的数据框:

V1                        V2
peanut butter sandwich    2 slices of bread 1 tablespoon peanut butter
Run Code Online (Sandbox Code Playgroud)

我的目标是:

V1                        V2
peanut butter sandwich    2 slices of bread
peanut butter sandwich    1 tablespoon peanut butter
Run Code Online (Sandbox Code Playgroud)

我试图分裂字符串使用strsplit(df$v2, " "),但我只能拆分" ".我不确定你是否只能在第一个数字处拆分字符串,然后取字符直到下一个数字.

regex string split r strsplit

6
推荐指数
2
解决办法
135
查看次数

在Plotly中旋转hover-info

我当前图形的悬停信息略有旋转(见下图).也就是说,当我将鼠标悬停在条形图上时,悬停文本会从水平方向旋转约60度(例如,请参见图像中的第二个条形图).如何将旋转设置为0?

# sample data
tbl = data.frame(list_id = c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5), 
             main_count = c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3),
             total = c(23,34,66,22,66,88,55,44,22,11,33,55,43,22,55))

plot_ly(tbl, type = "bar",
  y = main_count, x = total, group = list_id, orientation = "h") %>%
  layout(xaxis = list(title = ""), barmode = "stack")
Run Code Online (Sandbox Code Playgroud)

带有旋转标签的堆积条形图

r plotly

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

R:与GLMM(lme4)的连续和分类变量的交互图

我想制作一个交互作用图,从回归模型的结果中可视地显示分类变量(4个级别)和标准化连续变量的相互作用斜率的差异或相似性.

with(GLMModel, interaction.plot(continuous.var, categorical.var, response.var)) 不是我想要的.它产生一个图,其中斜率随连续变量的每个值而变化.我正在寻找一个具有恒定斜率的图,如下图所示:

在此输入图像描述

有任何想法吗?

我适合表单的模型fit<-glmer(resp.var ~ cont.var*cat.var + (1|rand.eff) , data = sample.data , poisson) 这是一些示例数据:

structure(list(cat.var = structure(c(4L, 4L, 1L, 4L, 1L, 2L, 
1L, 1L, 1L, 1L, 4L, 1L, 1L, 3L, 2L, 4L, 1L, 1L, 1L, 2L, 1L, 2L, 
2L, 1L, 3L, 1L, 1L, 2L, 4L, 1L, 2L, 1L, 1L, 4L, 1L, 3L, 1L, 3L, 
3L, 4L, 3L, 4L, 1L, 3L, 3L, 1L, 2L, 3L, 4L, 3L, 4L, 2L, 1L, 1L, 
4L, 1L, 1L, 1L, …
Run Code Online (Sandbox Code Playgroud)

plot interaction r lme4 mixed-models

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

在 R 中有效地分割大型音频文件


之前我问过这个关于分割音频文件的问题。我从 @Jean V. Adams 得到的答案对于小声音对象来说相对有效(缺点:输入是立体声,输出是单声道,而不是立体声):

library(seewave)

# your audio file (using example file from seewave package)
data(tico)
audio <- tico # this is an S4 class object
# the frequency of your audio file
freq <- 22050
# the length and duration of your audio file
totlen <- length(audio)
totsec <- totlen/freq

# the duration that you want to chop the file into
seglen <- 0.5

# defining the break points
breaks <- unique(c(seq(0, totsec, seglen), totsec))
index …
Run Code Online (Sandbox Code Playgroud)

audio performance file-io split r

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

重叠标签ggmap

我有Google地图和带有文本标签的坐标列表。预览时,标签重叠,因此变得不可读:

library(ggmap)
WPmap <- qmap(c(lon=4.80324, lat=52.40738), zoom = 12,  source = "google")
Run Code Online (Sandbox Code Playgroud)

表kaart_rtw:

              Naam      lat     lon
1 Nieuw-Zeelandweg 52.40466 4.80214
2      Portsmuiden 52.39014 4.78554
3     Westhavenweg 52.41602 4.82282
4     Westhavenweg 52.41702 4.82282
5     Westhavenweg 52.41802 4.82282
6         Deccaweg 52.40196 4.83910
7     Coenhavenweg 52.40364 4.86195 

AmsterdamMap + geom_text(data = kaart_rtw, aes(label = kaart_rtw$Naam, x = X, y = Y)) 
Run Code Online (Sandbox Code Playgroud)

有没有办法停止重叠?

r ggplot2 ggmap

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

将 as.Date 应用于 R 中的 Excel 格式日期

我想将 Excel 格式的日期转换为 yyyy-mm-dd,以便在动物园对象中转换 data.frame。

使用以下两个公式不会给出相同的结果?

为什么会这样?

> as.Date(41375, origin = "1899-12-30")
[1] "2013-04-11"

> as.Date(41375, tz = "CET")
[1] "2083-04-13"
Run Code Online (Sandbox Code Playgroud)

format excel r date

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

在R rgl轴标签中使用"表达式"

rgl例程是否接受希腊字母的"表达式"和轴标记的超/子脚本的使用?

就像是

xlab=(expression(paste("Lyman ",alpha,)))
Run Code Online (Sandbox Code Playgroud)

在普通的情节调用中效果非常好,但似乎只显示"(粘贴("Lyman",alpha,)"作为plot3d和decorate3d中的轴标签.如果没有,我如何将这些字符添加到使用plot3d生成的3D散点图中?

3d graphics r rgl

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