如果已经回答,请道歉.我今天经历了很多例子,但我找不到任何符合我要做的事情.
我有一个数据集,我需要计算3点移动平均线.我在下面生成了一些虚拟数据:
set.seed(1234)
data.frame(Week = rep(seq(1:5), 3),
Section = c(rep("a", 5), rep("b", 5), rep("c", 5)),
Qty = runif(15, min = 100, max = 500),
To = runif(15, min = 40, max = 80))
Run Code Online (Sandbox Code Playgroud)
我想根据'Qty'和'To'列的'Section'列计算每个组的MA.理想情况下,输出将是数据表.移动平均线将从第3周开始,因此将是1:3的平均值
我正在尝试掌握data.table包,所以使用它的解决方案将是伟大的,否则任何将非常感激.
仅供参考,我的实际数据集将有大约.70个部分,总共有c.1M行.到目前为止,我发现data.table非常快速地处理这些卷.
我有一个包含每周数据的数据框.每个部分有大约104周的数据,总共有83个部分.
我有第二个数据框,其中包含按部分的开始和结束周,我想过滤主数据框.
在两个表中,周是年和周的组合,例如201501,并且总是从第1周到第52周.
因此,在下面的示例中,我想在201401年到201404年之间过滤A部分,在2015年到201603周之间过滤B部分.
我最初认为我可以在我的Weeks_Filter数据框中添加一个额外的列,该数据框是每个部分的周开始和结束的序号(每周重复每行),然后合并2个表并保留所有数据来自Weeks_Filter表(all.y = TRUE),因为这对我做的一小部分样本起作用,但我不知道如何添加连续周,因为它们可以跨越不同年份.
Week <- c("201401","201402","201403","201404","201405", "201451", "201552", "201601", "201602", "201603")
Section <- c(rep("A",5),rep("B",5))
df <- data.frame(cbind(Week, Section))
Section <- c("A", "B")
Start <- c("201401","201551")
End <- c("201404","201603")
Weeks_Filter <- data.frame(cbind(Section, Start, End))
Run Code Online (Sandbox Code Playgroud) 我想从组中的第一行开始并在最后一行结束时按组计算YTD滚动平均值.以下示例......
Group <- c(rep("a",5), rep("b",5))
Sales <- c(2,4,3,3,5,9,7,8,10,11)
Result <- c(2,3,3,3,3.4,9,8,8,8.5,9)
df <- data.frame(Group, Sales, Result)
Run Code Online (Sandbox Code Playgroud)
结果列是我期望从滚动平均值中看到的.
我有一个数据表,我想为每个唯一的日创建一个新列,然后在每一行中为每天匹配列名称分配1
我使用for循环完成了这个,但我想知道是否有任何方法使用data.table和set来优化它?
这是一个例子
dt <- data.table(Week_Day = c("Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday"))
Day <- unique(dt$Week_Day)
for (i in 1:length(Day)) {
if (Day[i] != "Sunday") {
dt[, Day[i] := ifelse(Week_Day == Day[i], 1, 0)]
}
}
Run Code Online (Sandbox Code Playgroud)
我的表是298k行,虽然它不需要很长时间执行(下面),它是一个长脚本的一部分,我有相当多的低效循环,所以我试图让整个运行时间缩短.
运行时间:
user system elapsed
0.99 0.06 1.05
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我是 Julia 的新手,过去几年一直在使用 R,我正在努力完成我的第一个任务,即连接到我的 AWS MySQL 数据库。
我遵循了许多在线教程,但无论我做什么,我都会收到相同的消息。
一切都是昨天安装的,所以它应该都是当前版本。
julia-version = 1.5.2 版
这是代码:
Pkg.add(PackageSpec(url="https://github.com/JuliaComputing/MySQL.jl"))
Pkg.add(PackageSpec(url="https://github.com/JuliaDB/DBI.jl"))
using MySQL
con = MySQL.connect("ec2blah.eu-west-2.compute.amazonaws.com", "name", "password", db = "database")
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到以下错误:
UndefVarError: connect not defined
getproperty(::Module, ::Symbol) at Base.jl:26
top-level scope at data_prep.jl:18
Run Code Online (Sandbox Code Playgroud)
谢谢
我想根据另一列中的一部分字符串创建一个列。
参考列遵循以下通用格式:GB / 12月31日
在这种情况下,我想提取单词“ Ling”,并且长度不一。
到目前为止,我的方法是:
library(data.table)
d1 <- data.table(MENU_HINT =
c("GB / Ling 31st Dec", "GB / Taun 30th Dec",
"GB / Ayr 19th Dec", "GB / Ayr 9th Nov",
"GB / ChelmC 29th Sep"),
Track = c("Ling", "Taun", "Ayr", "Ayr", "ChelmC"))
#remove all the spaces
d1[, Track2 := gsub("[[:space:]]", "", MENU_HINT)]
# get the position of the first digit
d1[, x := as.numeric(regexpr("[[:digit:]]", Track2)[[1]])]
# get the position of the '/'
d1[, y := as.numeric(regexpr("/", Track2))[[1]]]
# …Run Code Online (Sandbox Code Playgroud)