小编Liz*_*iza的帖子

R:如何从时间序列中提取日期

如何从时间序列中提取日期?这是一个时间序列:

x = seq (1, 768)
myts <- ts(x, start=1982, frequency=24)
Run Code Online (Sandbox Code Playgroud)

最初我需要为该rts函数创建一个保存日期/时间数据的向量,观察始于1982年,每月进行2次测量直至2013年.

r date raster time-series

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

折叠具有重叠范围的行

我有一个包含开始和结束时间的data.frame:

ranges<- data.frame(start = c(65.72000,65.72187, 65.94312,73.75625,89.61625),stop = c(79.72187,79.72375,79.94312,87.75625,104.94062))

> ranges
     start      stop
1 65.72000  79.72187
2 65.72187  79.72375
3 65.94312  79.94312
4 73.75625  87.75625
5 89.61625 104.94062
Run Code Online (Sandbox Code Playgroud)

在此示例中,第2行和第3行中的范围完全在第1行的"start"和第4行的"stop"之间的范围内.因此,重叠范围1-4应折叠为一个范围:

> ranges
     start      stop
1 65.72000  87.75625
5 89.61625 104.94062
Run Code Online (Sandbox Code Playgroud)

我试过这个:

mdat <- outer(ranges$start, ranges$stop, function(x,y) y > x)
mdat[upper.tri(mdat)|col(mdat)==row(mdat)] <- NA
mdat
Run Code Online (Sandbox Code Playgroud)

而现在我只需要弄清楚如何结合所有真实的,但不确定它是否是最好的方法

r rows subset overlap overlapping

6
推荐指数
3
解决办法
1307
查看次数

如何根据R中的时间间隔对数据进行分组

我的数据看起来像这样:

library(plyr)
dates<-data.frame(datecol=as.POSIXct(c(
  "2010-04-03 03:02:38 UTC",
  "2010-04-03 03:03:14 UTC",
  "2010-04-20 03:05:52 UTC",
  "2010-04-20 03:07:42 UTC",
  "2010-04-21 03:09:38 UTC",
  "2010-04-21 03:10:14 UTC",
  "2010-04-21 03:12:52 UTC",
  "2010-04-23 03:13:42 UTC",
  "2010-04-23 03:15:42 UTC",
  "2010-04-23 03:16:38 UTC",
  "2010-04-23 03:18:14 UTC",
  "2010-04-24 03:21:52 UTC",
  "2010-04-24 03:22:42 UTC",
  "2010-04-24 03:24:19 UTC",
  "2010-04-24 03:25:19 UTC"
)), x = cumsum(runif(15)*10),y=cumsum(runif(15)*20))
Run Code Online (Sandbox Code Playgroud)

我想将我的数据分组为5天,因此所有5天或更短时间的点都放在一个组中.我尝试了这里建议的内容:

gr<-ddply(dates,.(cut(datecol,"5 day",include.lowest = TRUE)),"[")
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,我最终得到3组而不是2组,而04/21和04/23的分数分成不同的组,即使它们相隔不到5天.

这是我想得到的:

         group             datecol         x          y
1            1 2010-04-03 03:02:38  8.112423   4.790036
2            1 2010-04-03 03:03:14 11.184709  22.903475
3            2 2010-04-20 …
Run Code Online (Sandbox Code Playgroud)

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

ggplot2 如何使轴线在最后一个刻度处结束

我不希望轴线在原点相交,我还希望轴线从第一个刻度开始并在最后一个刻度处结束。怎么做?

r ggplot2

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

.wav文件长度/持续时间没有在文件中读取

有没有办法提取有关.wav文件长度/持续时间的信息,而无需读入R中的文件?我有成千上万的这些文件,如果我必须阅读每一个文件以查找其持续时间,将需要很长时间.Windows文件资源管理器为您提供了打开长度字段的选项,您可以看到文件的持续时间,但有没有办法提取该信息以便能够在R中使用?

这是我尝试过并且想避免做的事情,因为读取R中的数万个音频文件需要很长时间:

library(tuneR)
audio<-readWave("AudioFile.wav")
round(length(audio@left) / audio@samp.rate, 2)
Run Code Online (Sandbox Code Playgroud)

windows audio r wav

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

R:在数据框的子集中查找列的最大值

我有一个数据帧df的柱子IDYearValue1Value2Value3和21788928行。我需要通过Yearand对数据进行子集化ID并找到该Value1子集中的最大值,保存该行的其余信息,我需要对Yearand 的所有组合执行此操作ID(年份从 1982 年到 2013 年,ID 是从 1 到 28371)

我试图在双循环中做到这一点:

year<-seq(1982, 2013)
cnt=1
for (i in 1:32) {
  for (j in 1:28371)

    A<-df[df$Year==year[i]&df$ID==j,] 
    maxVal[cnt,]<-A[A$Value1==max(A$Value1),]
    cnt=cnt+1
}
}
Run Code Online (Sandbox Code Playgroud)

但这需要很长时间。有没有更有效的方法来做到这一点?也许使用ddplywith

r max subset plyr dataframe

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

R:如何使x轴和y轴长度相同?

R 总是使 x 轴比 y 轴更长,即使它们具有相同的限制。是否有控制轴长度的选项?

plot(0:100,0:100)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我需要它是一个正方形。

plot axis r

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

标签 统计

r ×6

subset ×2

audio ×1

axis ×1

dataframe ×1

date ×1

ggplot2 ×1

max ×1

overlap ×1

overlapping ×1

plot ×1

plyr ×1

raster ×1

rows ×1

time-series ×1

wav ×1

windows ×1