小编Aks*_*elA的帖子

如何创建具有附加功能的data.frame子类

我想创建一个几乎是数据框架的类,有一些增强功能(额外的功能,额外的属性),我想知道最好的方法是什么.该类基本上是一个数据框,但有一些额外的属性,例如该数据框的模式(下面命名为"form",自动派生,表示为数据框,用于将数据框转换为正确的类型),还有其他几件事.当用户在其他不识别其特殊类型的函数中使用此对象时,我希望它们处理对象的data.frame部分.做这个的最好方式是什么?

我发现的两种方法都不令人满意; 我列出了他们以及我仍然看到并试图解决的问题; 问题是:做我想做的最好的方法是什么?

方法1,使用"data.frame"作为"基础"插槽 (受此SO帖子的启发)

setClass("formhubData", representation(form="data.frame"), contains="data.frame")
fd <- new('formhubData', data.frame(x=c(1,2)), form=data.frame(name='x', type='select one', label='X'))
Run Code Online (Sandbox Code Playgroud)

这种方法允许我做以下事情:

fd$x                  >> 1 2
names(fd)             >> "x"
Run Code Online (Sandbox Code Playgroud)

[更新:事实证明"分解"是由我的环境造成的,我用不同的参数反复调用setClass('formhubData',...).在新的R会话中,以下所有函数都按预期工作.]

但它很快崩溃了:

nrow(fd)              >> NULL
colnames(fd)          >> NULL
Run Code Online (Sandbox Code Playgroud)

与上面链接的帖子不同,即使简单is.data.frame也不适用于我

is.data.frame         >> FALSE
Run Code Online (Sandbox Code Playgroud)

方法2,使用"数据"插槽(灵感来自SP)

setClass("formhubData", representation(data="data.frame", form="data.frame"))
fd <- new('formhubData', data=data.frame(x=c(1,2)), form=data.frame(name='x', type='select one', label='X'))
Run Code Online (Sandbox Code Playgroud)

我失去了默认定义:

fd$x             >> NULL
names(fd)        >> integer(0)
Run Code Online (Sandbox Code Playgroud)

但是,至少我可以重新定义它们中的大多数(仍然需要了解[,[[等等):

 dim.formhubData <- function(x) dim(x@data)
 names.formhubData <- function(x) names(x@data)
 nrow(fd)        >> 2
 names(fd)       >> "x"
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法表达这样一个事实:对于任何采用data.frame的方法,我的类应该用作其@data插槽的直通.我觉得这样的事情需要 *.formhubData <- function(x, ...) *(x, …

r s4

9
推荐指数
1
解决办法
842
查看次数

计算与 R 的切线交点

我正在尝试在该点处为我的绘图添加切线,x = 30并且我想计算 处切线的 x 交点y = 0.08

我已经找到了一个非常有用的例子,我尝试使用它,但由于某种原因它不适用于y = 0.08. 我不明白predict()函数中 deriv 的含义,也不明白pred0 和 pred1 之间的实际区别。有人可以解释一下吗?

x <- seq(0,40)
y <- dnorm(seq(0,40), mean=25, sd=5)
plot(x, y)
spl <- smooth.spline(y ~ x)
lines(spl, col="green")

newx <- 30
pred0 <- predict(spl, x=newx, deriv=0)
pred1 <- predict(spl, x=newx, deriv=1)

yint <- pred0$y - (pred1$y*newx)
xint <- -yint/pred1$y
xint



plot(x, y)
abline(h=0, col="red")
lines(spl, col="red") 
points(pred0,col="red", pch=19) 
lines(x, yint + pred1$y*x) 
points(xint, 0, col="red", pch=19) 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

plot intersection r spline

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

不会像在R中那样解析19位数字

我在字符数组中的JSON中有以下数字:

[1544018118438041139,162.0,38.0,0.023529414,1.0,2131230815,1]

library(jsonlite)
fromJSON(
  '[1544018118438041139,162.0,38.0,0.023529414,1.0,2131230815,1]'
)
Run Code Online (Sandbox Code Playgroud)

收益:

[1] 1544018118438041088.000000000000000000000
162.000000000000000000000 38.000000000000000000000 [4] 0.023529413999999998497
1.000000000000000000000 2131230815.000000000000000000000 [7] 1.000000000000000000000

我想让它返回正确的确切时间(大号:1544018118438041139)

请告知如何使其工作.

json r numeric biginteger

4
推荐指数
1
解决办法
93
查看次数

如何使用SoX库制作机器人或Dalek语音?

我想使用SoX库将语音转换为机器人语音(例如,星际争霸游戏的歌利亚语音)。

我在网络上找到了机器人语音的以下顺序,但并没有产生机器人语音。

过载10回波0.8 0.8 5 0.7回波0.8 0.7 6 0.7回波0.8 0.7 10 0.7回波0.8 0.7 12 0.7回波0.8 0.88 12 0.7回波0.8 0.88 30 0.7回波0.6 0.6 60 0.7

发出机器人声音需要什么效果?你能告诉我一系列的效果和选择吗?

提前致谢。

audio voice synthesizer sox

3
推荐指数
1
解决办法
1676
查看次数

如何在过滤器内写入多个逻辑条件

这是我的数据集:

set.seed(327)

ID <- seq(1:50)

mou <- sample(c(2000, 2500, 440, 4990, 23000, 450, 3412, 4958, 745, 1000),
  50, replace=TRUE)

calls <- sample(c(50, 51, 12, 60, 90, 16, 89, 59, 33, 23, 50, 555),
  50, replace=TRUE)

rev <- sample(c(100, 345, 758, 44, 58, 334, 888, 205, 940, 298, 754),
  50, replace=TRUE)

dt <- data.frame(mou, calls, rev)
Run Code Online (Sandbox Code Playgroud)

我的动机是找到mou调用大于34且小于200且rev大于100且小于400 的平均值.我开始使用dplyr来解决这个问题,但我不太确定如何在过滤器内正确使用所需的表达式功能.

dt %>% filter(???) %>% summarize(mean_mou=mean(mou))
Run Code Online (Sandbox Code Playgroud)

你能否指导一下如何在过滤器中正确构建这个表达式.

r dplyr

3
推荐指数
1
解决办法
109
查看次数

如何将逗号作为小数点使用“ cols()”和“ col_double”

我想readr在阅读时将带有包的列解析为正确的类型。

难度:字段之间用分号(;)分隔,而逗号(,)用作小数点。

library(readr)

# Test data:
T <- "Date;Time;Var1;Var2
      01.01.2011;11:11;2,4;5,6
      02.01.2011;12:11;2,5;5,5
      03.01.2011;13:11;2,6;5,4
      04:01.2011;14:11;2,7;5,3"

read_delim(T, ";")
# A tibble: 4 × 4
#              Date     Time  Var1  Var2
#             <chr>   <time> <dbl> <dbl>
# 1       01.01.2011 11:11:00    24    56
# 2       02.01.2011 12:11:00    25    55
# 3       03.01.2011 13:11:00    26    54
# 4       04:01.2011 14:11:00    27    53
Run Code Online (Sandbox Code Playgroud)

因此,我认为解析过程可以这样工作,但是我总是收到错误消息:

read_delim(T, ";", cols(Date = col_date(format = "%d.%m.%Y")))
# Error: expecting a string
Run Code Online (Sandbox Code Playgroud)

同样在这里:

read_delim(T, ";", cols(Var1 = col_double())) …
Run Code Online (Sandbox Code Playgroud)

csv r readr

3
推荐指数
1
解决办法
1658
查看次数

将矩阵转换为 xts 对象

我是 R 新手,需要使用包getnfac中的函数PANICr。而且该函数似乎只接受一个xts对象作为其第一个参数。然而,在我读了一些书之后,我仍然不明白什么xts是对象。谁能告诉我如何将 a 转换matrixxts对象?

下面我使用return矩阵作为第一个参数。因此我只需要转换return为一个xts对象。

getnfac(return,143,"BIC3")
Error in getnfac(return, 143, "BIC3") : 
  x must be an xts object so lags and differences are taken properly
Run Code Online (Sandbox Code Playgroud)

r xts

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

Angular2单元测试的Observable.interval

我有一项服务,每500毫秒从服务器轮询一次数据。为此,我用了Observable.interval()

下面是我的代码。我想为此服务编写单元测试

service.ts:

pollData() {
       Observable.interval(500).mergeMap(() =>
       this._http
      .get(url, { headers: headers })
      .map((resp: Response) => resp.json())
});
Run Code Online (Sandbox Code Playgroud)

服务规格:

it('should get the response correctly', async(inject(
  [SomeService, MockBackend], (service, mockBackend) => {
    mockBackend.connections.subscribe((connection: MockConnection) => {
      connection.mockRespond(new Response(new ResponseOptions({ body: 
      mockResponse})));
   });
    const result = service.pollData();

    result.subscribe(response => {
       expect(response).toEqual(mockResponse);
    });
  }
)));
Run Code Online (Sandbox Code Playgroud)

在执行ng测试时出现错误:

错误:超时-jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时内未调用异步回调。

unit-testing karma-runner angular

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

标签 统计

r ×6

angular ×1

audio ×1

biginteger ×1

csv ×1

dplyr ×1

intersection ×1

json ×1

karma-runner ×1

numeric ×1

plot ×1

readr ×1

s4 ×1

sox ×1

spline ×1

synthesizer ×1

unit-testing ×1

voice ×1

xts ×1