我有一个包含时间序列数据的大表(不是时间序列格式),我想用一行简单的代码替换某些值.您将在下面找到该表的示例.我想用0代替NA,用8代替88888.当然,这可以在while循环的帮助下逐列完成.但是,我想这个问题有一个更简单的解决方案.有什么建议?
样本数据集:
sample <- structure(list(Period = c("01-12-08", "01-01-09", "01-02-09", "01-03-09",
"01-04-09", "01-05-09", "01-06-09", "01-07-09", "01-08-09", "01-09-09", "01-10-09",
"01-11-09", "01-12-09", "01-01-10", "01-02-10"), Serie1 = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 6L, 88888L, 88888L, 88888L), Serie2 = c(NA, NA, NA, NA, NA, NA,
20L, 88888L, 88888L, 88888L, 88888L, 88888L, 88888L, NA, NA), Serie3 = c(NA, NA,
NA, NA, NA, NA, NA, NA, NA, 10L, 10L, 88888L, 88888L, 88888L, 88888L)), .Names =
c("Period", "Serie1", "Serie2", "Serie3"), row.names = …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 data.table 中进行一些聚合,但我面临着一个无法找到解决方案的挑战。挑战真的很简单,我想沿着不止一个维度来总结 data.table 中的一些值。
让以下代码正常工作没有问题:
Export4R[,sum(units),by=Type]
Run Code Online (Sandbox Code Playgroud)
这给出了以下几点:
Type Value
foobar 45
barfoo 25
Run Code Online (Sandbox Code Playgroud)
但现在我想把它进一步分解一下,希望得到一张这样的表:
Type Month Value
foobar Mar 12
foobar Apr 7
....
Run Code Online (Sandbox Code Playgroud)
我试图用一行代码来做到这一点,但不幸的是,这似乎不起作用:
Export4R[,sum(units),by=Type,Month]
Run Code Online (Sandbox Code Playgroud)
这很可能是一个非常简单的问题,但我很难找到答案。
感谢您的帮助!
我有一个更大的数据集(data.table,大约9米行),我想用一个列来聚合值(最小值和最大值等).该列是各种其他列的组合,并具有基于字符串的格式,如下所示:
string <- "318XXXX | VNSGN | BIER"
Run Code Online (Sandbox Code Playgroud)
为了在执行任务时获得一些速度,我想将其重新编码为一个唯一的整数.我定期用来处理数据的另一个应用程序有一个内置函数,它将一个字符串转换为整数(例如73823).我想知道R中是否有类似的功能?这个想法是一个特定的字符串总是会产生相同的整数; 这将允许它用于合并data.tables等.
这里是我想用简单整数值编码的data.table列的一个小例子:
sample <- c("318XXXX | VNSGN | BIER", "462XXXX | TZZZH | 9905", "462XXXX | TZZZH | 9905",
"462XXXX | TZZZH | 9905", "511XXXX | FAWOR | 336H", "511XXXX | FAWOR | 336H",
"652XXXX | XXXXR | T136", "652XXXX | XXXXR | T136", "672XXXX | BQQSZ | 7777",
"672XXXX | BQQSZ | 7777")
Run Code Online (Sandbox Code Playgroud)
我希望将字符串编码到表格的附加列中,如下所示; 请注意,相同的字符串会产生相同的数字.
String Number
318XXXX | VNSGN | BIER 19872
462XXXX | TZZZH | 9905 78392
462XXXX …Run Code Online (Sandbox Code Playgroud) 我有大量的时间序列,我想为此生成预测.为了自动生成最佳预测,我想应用一些模型,如auto.arima,ets,(s)naive,神经网络等.不幸的是,当它循环通过时间序列时,某些模型会失败,从而停止执行R脚本.为了使这个更强大,我开始使用tryCatch(); 我的主要目标是我会让脚本继续没有必要捕获错误.执行代码时,forecast()内部tryCatch()无法产生正确的预测.
请在下面找到我遇到的错误的可重现示例.
历史时间序列:
ts <- structure(c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 9, 10, 10, 16, 7, 13, 0, 9, 1, 11, 2, 11, 3,
11, 4, 1, 20, 13, 13, 13, 9, 14, 16, 16, 18, 17, 20, 18, 19,
16, 16, 16, 15, 14, 27, 24, 35, 8, 18, 21, 20, 19, 22, 18, 21, …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的csv文件,我正在尝试使用不同的预测方法.
Year total UnemplRt
1 12/31/2013 NA 7.1
2 12/31/2012 39535 8.3
3 12/31/2011 36965 10.0
4 12/31/2010 36234 10.9
5 12/31/2009 37918 8.5
6 12/31/2008 42235 4.3
7 12/31/2007 55698 3.7
8 12/31/2006 58664 3.8
9 12/31/2005 59674 4.7
10 12/31/2004 51439 5.7
Run Code Online (Sandbox Code Playgroud)
当我使用R studio导入它时,我得到这个列表.(上面)只有列表名称.和Col标题,我似乎无法参考.
我是R的新手,但我知道我应该有一个Dataframe,第一列应该是日期类型.不知道如何从这里到达那里..然后..那是正确的输入预测布局吗?
如何使用预测(Mutli模型)使用行10-4在3上使用UnemplRt预测"总数"(预先知道等等,即10-3预测2和10-2预测1)当然这将是对即将到来的一年的预测...我已经在电子表格中使用直线回归计算了它,但是它太高了,所以我正在寻找最近的因素数据更好,注意曲线而不仅仅是直线.
这非常简单,但希望足够通用,其他人也会发现答案也很有用.
我有以下模式的时间序列,我想知道是否有人可以分享一个聪明的技巧来删除前导零.我想避免的原因是它可能对预测模型的选择产生负面影响.
示例时间序列:
TimeSeries <- ts(c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 9, 10, 10, 16, 7, 13, 0, 9, 1,
11, 2, 11, 3, 11, 4, 1, 20, 13, 18, 19, 16, 16, 16,
15, 14, 27, 24, 35, 8, 18, 21, 20, 19, 22, 18, 21
),start=c(2001,6),frequency=12)
Run Code Online (Sandbox Code Playgroud)
我可以设想一个缩小领先零序列的过程,用时间序列的子集执行多个测试,然后只用零删除前导子集.然而,这将是麻烦的过程,其在计算方面可能是低效的.
是否有人知道已经存在的功能或程序有效地执行此操作?
r ×6
data.table ×3
forecasting ×3
time-series ×2
aggregation ×1
dataframe ×1
dimension ×1
regression ×1
try-catch ×1