我必须使用包含字符串的行作为标准来过滤数据帧RTB.我正在使用dplyr.
d.del <- df %.%
group_by(TrackingPixel) %.%
summarise(MonthDelivery = as.integer(sum(Revenue))) %.%
arrange(desc(MonthDelivery))
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用该函数filter,dplyr但我不知道如何告诉它检查字符串的内容.
特别是我想检查列中的内容TrackingPixel.如果字符串包含RTB我想从结果中删除行的标签.
我有两个csv文件,每个文件由一列数据组成
例如,vecA.csv就像
id
1
2
Run Code Online (Sandbox Code Playgroud)
vecB.csv就像
id
3
2
Run Code Online (Sandbox Code Playgroud)
我读了数据集如下:
vectorA<-read.table("vecA.csv",sep=",",header=T)
vectorB<-read.table("vecB.csv",sep=",",header=T)
Run Code Online (Sandbox Code Playgroud)
我想生成一个由属于B的元素组成的向量.
我想知道是否有一个包来绘制人体轮廓的2D表示?在2D中,在任何时候绘制前/后/侧都可能是实现这一目标的最简单方法.输出将与此类似(尽管这不是这种图表的最佳用法):

资料来源:http://emj.bmj.com/content/20/5/434.full
理想情况下,map(regions="Australia")可以在表格中绘制为世界所做的数据子集body.map(regions="left.hand").在这方面,将这样的模型建立在maps包装上是否合适?
我写了一个(相当幼稚的)函数来随机选择两个指定日期之间的日期/时间
# set start and end dates to sample between
day.start <- "2012/01/01"
day.end <- "2012/12/31"
# define a random date/time selection function
rand.day.time <- function(day.start,day.end,size) {
dayseq <- seq.Date(as.Date(day.start),as.Date(day.end),by="day")
dayselect <- sample(dayseq,size,replace=TRUE)
hourselect <- sample(1:24,size,replace=TRUE)
minselect <- sample(0:59,size,replace=TRUE)
as.POSIXlt(paste(dayselect, hourselect,":",minselect,sep="") )
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
> rand.day.time(day.start,day.end,size=3)
[1] "2012-02-07 21:42:00" "2012-09-02 07:27:00" "2012-06-15 01:13:00"
Run Code Online (Sandbox Code Playgroud)
但随着样本量的增加,这似乎在大幅放缓.
# some benchmarking
> system.time(rand.day.time(day.start,day.end,size=100000))
user system elapsed
4.68 0.03 4.70
> system.time(rand.day.time(day.start,day.end,size=200000))
user system elapsed
9.42 0.06 9.49
Run Code Online (Sandbox Code Playgroud)
有人能够以更有效的方式建议如何做这样的事情吗?
是否有某种方式使用rollapply(从zoo包装或类似的东西)优化功能(rollmean,rollmedian等)来计算与基于时间窗口的滚动功能,而不是一个基于的若干意见?我想要的很简单:对于不规则时间序列中的每个元素,我想计算一个带有N天窗口的滚动函数.也就是说,窗口应包括当前观察前N天的所有观察结果.时间序列也可能包含重复项.
以下是一个例子.鉴于以下时间序列:
date value
1/11/2011 5
1/11/2011 4
1/11/2011 2
8/11/2011 1
13/11/2011 0
14/11/2011 0
15/11/2011 0
18/11/2011 1
21/11/2011 4
5/12/2011 3
Run Code Online (Sandbox Code Playgroud)
具有5天窗口的滚动中位数(右侧对齐)应导致以下计算:
> c(
median(c(5)),
median(c(5,4)),
median(c(5,4,2)),
median(c(1)),
median(c(1,0)),
median(c(0,0)),
median(c(0,0,0)),
median(c(0,0,0,1)),
median(c(1,4)),
median(c(3))
)
[1] 5.0 4.5 4.0 1.0 0.5 0.0 0.0 0.0 2.5 3.0
Run Code Online (Sandbox Code Playgroud)
我已经找到了一些解决方案,但它们通常很棘手,通常意味着很慢.我设法实现了自己的滚动函数计算.问题是,对于非常长的时间序列,中位数(rollmedian)的优化版本可以产生巨大的时间差,因为它考虑了窗口之间的重叠.我想避免重新实现它.我怀疑rollapply参数有一些技巧可以使它工作,但我无法弄明白.在此先感谢您的帮助.
我正在寻找一些简单的(即 - 没有数学符号,长形式可重现的代码)filterR中的函数示例我认为我对卷积方法有所了解,但我坚持推广递归选项.我已阅读并与各种文档作斗争,但帮助对我来说有点不透明.
以下是我到目前为止所发现的例子:
# Set some values for filter components
f1 <- 1; f2 <- 1; f3 <- 1;
Run Code Online (Sandbox Code Playgroud)
我们走了:
# basic convolution filter
filter(1:5,f1,method="convolution")
[1] 1 2 3 4 5
#equivalent to:
x[1] * f1
x[2] * f1
x[3] * f1
x[4] * f1
x[5] * f1
# convolution with 2 coefficients in filter
filter(1:5,c(f1,f2),method="convolution")
[1] 3 5 7 9 NA
#equivalent to:
x[1] * f2 + x[2] * f1
x[2] * f2 + x[3] * …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,如下例所示
a = c(1, 1, 1, 2, 2, 3, 4, 4)
b = c(3.5, 3.5, 2.5, 2, 2, 1, 2.2, 7)
df <-data.frame(a,b)
Run Code Online (Sandbox Code Playgroud)
我可以通过以下代码从R数据框中删除重复的行,但是如何找到每个重复行重复的次数?我需要结果作为向量.
unique(df)
Run Code Online (Sandbox Code Playgroud)
要么
df[!duplicated(df), ]
Run Code Online (Sandbox Code Playgroud) 考虑格式的字符串
test <- "YYYY-MM-DDT00:00:00.000-08:00"
Run Code Online (Sandbox Code Playgroud)
我的目标是将这些字符串转换为POSIXct格式,以便我可以绘制数据.我最初的想法是使用
as.POSIXct(test)
Run Code Online (Sandbox Code Playgroud)
...但这似乎将日期时间截断为日期.有什么想法吗?帮助信息as.POSIXct似乎暗示输入应该是由空格分隔的日期和时间,而不是"T".这是我的问题吗?
我试图绘制一个最小二乘回归线使用abline(lm(...))它也被迫通过一个特定的点.我看到这个问题是相关的,但不是我想要的.这是一个例子:
test <- structure(list(x = c(0, 9, 27, 40, 52, 59, 76), y = c(50, 68,
79, 186, 175, 271, 281)), .Names = c("x", "y"))
# set up an example plot
plot(test,pch=19,ylim=c(0,300),
panel.first=abline(h=c(0,50),v=c(0,10),lty=3,col="gray"))
# standard line of best fit - black line
abline(lm(y ~ x, data=test))
# force through [0,0] - blue line
abline(lm(y ~ x + 0, data=test), col="blue")
Run Code Online (Sandbox Code Playgroud)
这看起来像:

现在,我将如何强制线穿过标记的任意点,(x=10,y=50)同时仍然最小化到其他点的距离?
# force through [10,50] - red line
??
Run Code Online (Sandbox Code Playgroud) 我只是想不通如何创建一个矢量,其中字符串是常量但数字不是.例如:
c("raster[1]","raster[2]","raster[3]")
Run Code Online (Sandbox Code Playgroud)
我想使用类似的东西seq(raster[1],raster[99], by=1),但这不起作用.
提前致谢.