我有一个很长的R脚本会抛出一些警告,我可以忽略它.我可以用
suppressWarnings(expr)
Run Code Online (Sandbox Code Playgroud)
单一陈述.但是如何在全球范围内抑制R中的警告?这有选择吗?
应用于gsub各种列的最有效方法是什么?以下不起作用
x1=c("10%","20%","30%")
x2=c("60%","50%","40%")
x3 = c(1,2,3)
x = data.frame(x1,x2,x3)
per_col = c(1,2)
x = gsub("%","",x[,per_col])
Run Code Online (Sandbox Code Playgroud)
如何最有效地删除指定列中的"%"符号.我可以将它应用于整个数据框吗?在我不知道列百分比在哪里的情况下,这将非常有用.
我想用R进行时间序列分析.我想制作一个时间序列模型,并使用包timeDate和预测中的函数.
我在CET时区有日内数据(15分钟数据,每小时4个数据点).在3月31日实施了夏令时,我错过了我通常拥有的96个数据点.10月28日,随着时间的推移,我有4个数据点太多了.
对于我的时间序列模型,我总是需要96个数据点,否则日内季节性会变得混乱.
你有这方面的经验吗?你知道一个R函数或一个有助于自动化这种数据处理的包 - 一些优雅吗?谢谢!
我想使用R包rsample来生成我的数据的重采样.
该软件包提供了rolling_origin生成重采样的功能,以保持数据的时间序列结构.这意味着训练数据(在被调用的包中analysis)总是在测试数据(assessment)的过去.
另一方面,我想执行数据的块样本.这意味着在采样期间将行组保持在一起.这可以使用该功能完成group_vfold_cv.人们可以想到的是几个月.比如说,我们希望时间序列交叉验证始终保持数月.
有没有办法将这两种方法结合起来rsample?
我自己给出每个程序的例子:
## generate some data
library(tidyverse)
library(lubridate)
library(rsample)
my_dates = seq(as.Date("2018/1/1"), as.Date("2018/8/20"), "days")
some_data = data_frame(dates = my_dates)
some_data$values = runif(length(my_dates))
some_data = some_data %>% mutate(month = as.factor(month(dates)))
Run Code Online (Sandbox Code Playgroud)
这给出了以下形式的数据
A tibble: 232 x 3
dates values month
<date> <dbl> <fctr>
1 2018-01-01 0.235 1
2 2018-01-02 0.363 1
3 2018-01-03 0.146 1
4 2018-01-04 0.668 1
5 2018-01-05 0.0995 1
6 2018-01-06 0.163 1 …Run Code Online (Sandbox Code Playgroud) 我以日期形式提供数据(格式"YYYY-MM-DD",例如"2015-03-11",以及当天的小时数(0-23).
生成表单的时间对象最方便的方法是什么
"2015-03-11" and hour = 0 -> "2015-03-11 00:00"
"2015-03-11" and hour = 1 -> "2015-03-11 01:00"
"2015-03-11" and hour = 2 -> "2015-03-11 02:00"
Run Code Online (Sandbox Code Playgroud)
我可以使用Base中的Date函数或来自xts或timeDate的函数.应该很容易,但我相信那里的人很快就会知道.
编辑:数据以2列提供,一列用于日期,一列用数字.
我们先来看一下lm。我有一个连续的解释性 $X$ 和一个因子 $F$ 来建模季节性方面(在示例中为 8 个级别)。
让 $\\beta$ 表示 $X$ 的斜率,然后我想对斜率与因子的相互作用进行建模。这是某种物理模型,因此我假设交互作用仅对 8 个级别中的 2 个级别有意义。\n如何表达?我想使用一个普通的公式,因为稍后我想将其放入AER包(函数tobit)中的审查回归中
数据是:
\n\nN = 50\nf = rep(c("s1","s2","s3","s4","s5","s6","s7","s8"),N)\nfcoeff = rep(c(-1,-2,-3,-4,-3,-5,-10,-5),N)\nbeta = rep(c(5,5,5,8,4,5,5,5),N)\nset.seed(100) \nx = rnorm(8*N)+1\nepsilon = rnorm(8*N,sd = sqrt(1/5))\ny = x*beta+fcoeff+epsilon\nRun Code Online (Sandbox Code Playgroud)\n\n与所有相互作用的拟合给出了准确的结果
\n\nfit <- lm(y~0+x+x*f)\nsummary(fit)\n\nCall:\nlm(formula = y ~ 0 + x + x * f)\n\nResiduals:\n Min 1Q Median 3Q Max \n-1.41018 -0.30296 0.01818 0.32657 1.20677 \n\nCoefficients:\n Estimate Std. Error t value Pr(>|t|) \nx 5.039064 0.075818 …Run Code Online (Sandbox Code Playgroud) 我使用R版本2.15.1(2012-06-22)和mgcv版本1.7-22
我在R中加载了以下一组包:
library(sqldf)
library(timeDate)
library(forecast)
library(xts)
library(tseries)
library(MASS)
library(mgcv)
碰巧我无法运行一个简单的模型(我省略了代码).甚至从帮助页面获取的示例代码:
dat = gamSim(1,n=400,dist="normal",scale=2)
b = gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat)
给出错误:
Error in qr.qty(qrc, sm$S[[l]]) :
NA/NaN/Inf in foreign function call (arg 5)
In addition: Warning message:
In smoothCon(split$smooth.spec[[i]], data, knots, absorb.cons, scale.penalty = scale.penalty, :
number of items to replace is not a multiple of replacement length
请注意,如果我只是加载包mgcv然后立即使用示例代码,一切正常.如果我只是加载所有包并运行示例代码,它也可以工作.如果我,它就行不通
显然,一般环境中的变量定义会破坏包的功能.
有任何已知问题吗?如果我加载各种包,是否有必须遵守的一般规则?我可以编写"扰乱"包mgcv的代码吗?
一个简单的问题:我知道如何xts从帮助中分配时间序列的年份,月份和日期:x['2000-05/2001']依此类推.
但是,如何在一天中的几个小时内对我的数据进行子集化?我想在07:00 am到06:00 pm之间获取所有数据.即,我想在营业时间内提取数据 - 与当天无关(我稍后会照顾周末).帮助有一个表单示例:
.parseISO8601('T08:30/T15:00')
Run Code Online (Sandbox Code Playgroud)
但这在我的情况下不起作用.有人有线索吗?
我使用生成交互式图形dygraph.我可以在R studio的"Viewer"窗口和浏览器中查看它们.
保存这些图的最方便的方法是什么(es html?)?我可以邮寄吗?
我运行R studio 0.98.507并
sessionInfo()给出:
R version 3.1.0 (2014-04-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=German_Austria.1252 LC_CTYPE=German_Austria.1252 LC_MONETARY=German_Austria.1252 LC_NUMERIC=C
[5] LC_TIME=German_Austria.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] PerformanceAnalytics_1.1.0 xts_0.9-7 zoo_1.7-11 MASS_7.3-33
[5] cluster_1.15.2 RODBC_1.3-10
loaded via a namespace (and not attached):
[1] grid_3.1.0 lattice_0.20-29 tools_3.1.0
Run Code Online (Sandbox Code Playgroud) 我想比较简单的逻辑回归模型,其中每个模型只考虑一组指定的特征。我想在数据的重采样上对这些回归模型进行比较。
R 包mlr允许我使用dropFeatures. 代码类似于:
full_task = makeClassifTask(id = "full task", data = my_data, target = "target")
reduced_task = dropFeatures(full_task, setdiff( getTaskFeatureNames(full_task), list_feat_keep))
Run Code Online (Sandbox Code Playgroud)
然后我可以做基准实验,在那里我有一个任务列表。
lrn = makeLearner("classif.logreg", predict.type = "prob")
rdesc = makeResampleDesc(method = "Bootstrap", iters = 50, stratify = TRUE)
bmr = benchmark(lrn, list(full_task, reduced_task), rdesc, measures = auc, show.info = FALSE)
Run Code Online (Sandbox Code Playgroud)
如何生成仅考虑一组指定特征的学习器。据我所知,过滤器或选择方法总是应用一些统计程序,但不允许直接选择特征。谢谢!
我曾经使用mxnetR 中的包。我有一个旧安装,我可以在 R 3.4x 中使用它,但现在我想切换到最新的 R 版本(本地 R 3.5),我很想在 rstudio 上使用它。云。包裹在 CRAN 上(不是吗?)现在我尝试按照包裹页面上的说明进行操作:
cran <- getOption("repos")
cran["dmlc"] <- "https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/"
options(repos = cran)
install.packages("mxnet")
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
安装源包“mxnet”
尝试 URL ' https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/src/contrib/mxnet_0.10.1.tar.gz ' install.packages 中的警告:无法打开 URL ' https:// /apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/src/contrib/mxnet_0.10.1.tar.gz ':HTTP 状态为 '404 Not Found' 下载文件中的错误(url,destfile, method, mode = "wb", ...) :无法打开 URL ' https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/src/contrib/mxnet_0.10.1.tar.gz ' install.packages 中的警告:下载包 'mxnet' 失败
有没有办法从 R 命令行为 R 安装 mxnet(所以我也可以在云中尝试它)?或者我必须完全切换到 keras ....:)
任何帮助表示赞赏。
我的会话信息是:
R 版本 3.5.0 (2018-04-23) 平台:x86_64-w64-mingw32/x64 (64-bit) 运行环境:Windows >= 8 x64 …