小编the*_*ail的帖子

使用dplyr过滤包含特定字符串的行

我必须使用包含字符串的行作为标准来过滤数据帧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我想从结果中删除行的标签.

r filter dplyr

159
推荐指数
4
解决办法
27万
查看次数

生成两个向量之间的差异向量

我有两个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的元素组成的向量.

r

39
推荐指数
2
解决办法
4万
查看次数

R - 在2d中绘制人体

我想知道是否有一个包来绘制人体轮廓的2D表示?在2D中,在任何时候绘制前/后/侧都可能是实现这一目标的最简单方法.输出将与此类似(尽管这不是这种图表的最佳用法):

在此输入图像描述

资料来源:http://emj.bmj.com/content/20/5/434.full

理想情况下,map(regions="Australia")可以在表格中绘制为世界所做的数据子集body.map(regions="left.hand").在这方面,将这样的模型建立在maps包装上是否合适?

plot r coordinate-systems

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

有效地生成两个日期之间的时间和日期的随机样本

我写了一个(相当幼稚的)函数来随机选择两个指定日期之间的日期/时间

# 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)

有人能够以更有效的方式建议如何做这样的事情吗?

random datetime r date

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

通过基于时间的窗口优化不规则时间序列的滚动函数

是否有某种方式使用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参数有一些技巧可以使它工作,但我无法弄明白.在此先感谢您的帮助.

r time-series zoo

26
推荐指数
3
解决办法
2605
查看次数

过滤函数的简单示例,具体为递归选项

我正在寻找一些简单的(即 - 没有数学符号,长形式可重现的代码)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)

r time-series filter

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

查找重复行在R数据帧中重复的次数

我有一个数据框,如下例所示

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)

r

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

将日期时间字符串转换为R中的POSIXct日期/时间格式

考虑格式的字符串

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".这是我的问题吗?

string datetime r posixct

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

R绘制(abline + lm)最佳拟合线穿过任意点

我试图绘制一个最小二乘回归线使用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)

plot r point line least-squares

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

如何在R中创建具有不同数字的字符串序列

我只是想不通如何创建一个矢量,其中字符串是常量但数字不是.例如:

c("raster[1]","raster[2]","raster[3]")
Run Code Online (Sandbox Code Playgroud)

我想使用类似的东西seq(raster[1],raster[99], by=1),但这不起作用.

提前致谢.

r sequence

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