小编Anu*_*sha的帖子

如何将.Rmd文件转换为Rstudio的.Rnw文件?

我非常喜欢knitr在Rstudio中使用它并一直用它来编写降价演示和数据分析.我想在纸上使用相同的代码和结果,并希望将Rmd文件中的代码块转换为Rnw文件```{r}的块<< >>= @.

这允许使用为主文件编写的相同文档和代码.

有没有一种方法可以在markdown和Rnw文件的代码块之间进行转换?

或者整个文件本身除了代码块的语法差异外,它们在标记中非常相似(用pandoc将文本转换为latex很容易)

r rstudio knitr

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

如何命名时间序列对象中的列?

我在这里有点困惑,必须遗漏一些非常基本的东西.我想从多个时间序列对象中提取列.也许可以通过将ts对象放入数据帧然后提取它们来完成它,但是有一种直接的方法可以对此问题链接中给出的时间序列进行子集化

为了弄清楚如何为ts对象分配名称,?ts显示

ts(data = NA, start = 1, end = numeric(), frequency = 1,
   deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )
Run Code Online (Sandbox Code Playgroud)

但是在运行?ts help中的代码时,有或没有names参数给出 names(z)NULL.

z <- ts(matrix(rnorm(300), 100, 3), start=c(1961, 1), frequency=12) 要么 z <- ts(matrix(rnorm(300), 100, 3), start=c(1961, 1), frequency=12, names=c("x1", "x2", "x3"))

主要问题:1.如何为时间序列对象ts和mts中的列分配名称?2.直接从时间序列对象中提取列的方法和时间索引有哪些?是否有必要将其转换为zoo或xts类?或单独添加时间索引?

想要解决我想要解决的问题:

# using inbuilt ldeaths time series dataset
ldeaths
d <- diff(ldeaths)
percen <- quantile(d, 0.9)
i <- ifelse(d>percen, 1,0)
signal <- cbind(d,i) 
Run Code Online (Sandbox Code Playgroud)

现在要使用时间索引提取指标为1的数据集,我不知道如何继续.str(信号)是一个mts对象,但打印信号没有显示时间索引.

非常感谢.

r time-series

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

如何为R中的图形定义更多线型?

为R中的图定义了6种线类型,定义为"虚线","longdash"...... 链接

如果我要绘制更多6个系列,我该如何定义更多类型?可以基于软拷贝中的颜色来区分图形线,但是不适合于黑白打印.

是否有更多可用选项,或者我需要根据参考链接中的线和点组合来定义它们?

plot(x, type = "b", pch = 0, lty = "dotted")
Run Code Online (Sandbox Code Playgroud)

一些谷歌搜索建议开/关模式也可以用2,4,6或8个字符(非零十六进制字符,1-9和a-f)的字符串指定,预设样式为"虚线" "="44","dotted"="13","dotdash"="1343","longdash"="73","twodash"="2262".

但似乎用它来定义新的线型将会受到很多打击和试验,这些线型将在B&W印刷上有所区别.

编辑:

如果组合了点和线样式,我如何以可以输入的方式定义线类型集

plot(DF, ..., col = 1:ncol(DF), lty = 1:ncol(DF))
# where DF is the set of data to be plotted. 
Run Code Online (Sandbox Code Playgroud)

非常感谢.

r

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

有效的多时间序列分析的最佳实践

我有大量的时间序列(> 100),它们的采样频率和可用时间不同.每个时间序列都必须进行单位根和季节性调整以及其他初步数据转换和检查等的测试.

由于必须定期检查大量系列,有效解决方案是什么?关注的是节省常规方面的时间并跟踪系列和分析结果.例如,该系列的单位根测试是主观的.这种类型的分析可以自动化多少以及如何进行?

我已经阅读了有关统计工作流程的问题,这些问题建议在每个系列上运行一个通用脚本.

我根据处理多个时间序列数据集的经验询问更具体的内容.重点更多的是在处理如此多的系列时最大限度地减少错误,同时自动执行重复性任务.

statistics matlab r time-series

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

用于绘制时间序列数据的x轴刻度的日期格式

数据文件的日期格式为1975M1,1975M2,... 2011M12,用于时间序列数据.当使用R绘制此数据时,我希望x轴显示刻度轴上的月份.

对于要正确阅读的日期,我尝试将M替换为 - 获得%Y-%m格式,但对于来自hydroTSM软件包的drawTimeAxis来说似乎不太好,这可能需要%Y-%M-%d格式.它给出了刻度维度的维数不正确的错误.

另一种解析和格式化数据的方法x$newdate <- strptime(as.character(x$date), "%Y-%m"),然后format(x$newdate,""%Y-%m") 也不会读取日期并给出错误...所有NA.

date < - as.Date(data [,1]字符串不是标准明确格式的错误,而ts < - read.zoo(xts,as.yearmon(x [,1]))给出了数据不良的错误行.

请提供有关如何使用日期信息读取此数据的解决方案.

数据文件的一小部分

date    x   x2
1975M1  112.44  113.12
1975M2  113.1   114.36
1975M3  115.04  114.81
1975M4  117.65  115.35
1975M5  119.5   116.92
1975M6  121.4   118.56
1975M7  120.64  118.97
1975M8  119.12  119.84
1975M9  118.91  120.59
1975M10 120.58  122.3
1975M11 121.26  123.35
1975M12 122.34  123.33
Run Code Online (Sandbox Code Playgroud)

更新:到目前为止的答案通过在xts包中使用%YM%m或添加获取标准格式的日期来解决正确读取日期的问题.定制刻度轴仍然是个问题.drawTimeAxis给出了尺寸误差,并且绘图命令没有显示超过一年的数据或其他数据的月度标签.任何定制刻度轴的方法?

plot r date zoo

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

PC上的.R脚本文件在哪里?

我想找到用于在R中计算的脚本.R文件的位置.

我知道通过键入对象函数,我将获得正在运行的代码,然后我可以复制和编辑并将其保存为新的脚本文件并使用它.

要求查找foo.R文件的原因是

  1. 好奇心
  2. 知道数值计算中使用的算法是什么
  3. 更直接的是,我正在使用的stats包中的函数正在运行两个参数的结果而不是其他参数,并且必须弄清楚如何使其工作.R显示的错误意味着脚本文件中可能需要进行一些修改.

如果可能的话,我正在寻找更一般的答案.

编辑:根据目前为止的评论,这里是使用自回归方法计算时间序列谱的代码.数据输入是单变量系列.

x = ts(data)
spec.ar(x, method = "yule-walker")    1
spec.ar(x, method = "burg")        2
Run Code Online (Sandbox Code Playgroud)

命令1运行正常.命令2给出以下错误.

Error in ar.burg.default(x, aic = aic, order.max = order.max, na.action = na.action,  : 
  Burg's algorithm only implemented for univariate series
Run Code Online (Sandbox Code Playgroud)

我确实尝试正确指定所有参数,如na.action = na.fail,order.max = NULL等,但消息是相同的.请建议可能的解决方案.

PS(这个问题是在搜索安装了R的库文件夹和zip文件后发布的,这些文件随包,手册和打开.rdb,.rdx文件一起提供)

r

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

如何在R中构造这个二进制变量?

目的是检查索引i处的值是否为1,然后将前六个条目设为1.

x <- c(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1)

## Required output 
y <- c(1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1)

## Attempt 
for(j in seq_along(x)){
if(x[j] == 1){
   for(i in (j-6):j)
   x[i] = 1
   }}
Run Code Online (Sandbox Code Playgroud)

你能帮忙解决这个或更好的方法吗?

谢谢.

r

5
推荐指数
3
解决办法
136
查看次数

标签 统计

r ×7

time-series ×2

date ×1

knitr ×1

matlab ×1

plot ×1

rstudio ×1

statistics ×1

zoo ×1