【发布时间】:2014-07-18 22:30:10
【问题描述】:
示例:过滤信号或序列(输出行数与输入相同)
library(data.table)
library(plyr)
dummy.table <- data.table(val=runif(30),group1=rep(1:2,times=15),group2 = rep(1:15,each=2))
library(signal)
end.f <- 20
start.f <- 10
sample.rate <- 256
low.pass <- butter(buttord(Wp = start.f/sample.rate*2,
Ws = end.f/sample.rate*2,
Rp = 0.5, Rs = 40))
鉴于上述数据,我该如何修复ddply 调用?不管我用summarize还是mutate,输出的行数都不一样。
dummy.table[,val:=filtfilt(low.pass,val), by=c("group1","group2")]
filt.test <- ddply(dummy.table, .(group1, group2),
mutate,
val=filtfilt(filt=low.pass,x=dummy.table$val))
【问题讨论】:
-
您确定
dummy.table.filt会存在吗?我知道 hadley 在评估机制方面做了一些奇怪的事情,但我怀疑你从其他一些 OOP 语言中引入了一些语言约定。 -
一般来说
mutate不应该改变行数。 -
@BondedDust 抱歉,这是制作 MWE 时的代码拼写错误。
标签: r data.table plyr