我想对数据集中前4个值进行滚动均值.但是,一开始,由于没有4个值,我想做1/2/3观测的滚动平均值.我该怎么做呢?
library(zoo)
df= data.frame(a=c(1,2,3,4,5))
df$answer = rollapply(df$a, 4,mean)
#help
Run Code Online (Sandbox Code Playgroud)
例如,第1行的值为1,第2行的值为(1 + 2)/2=1.5,第3行的值为6/3 = 2.
我想做4个周期的滚动方式,但是在月数较少的时期,我想做允许的最大周期的平均值.
我看到 pandas 库有一个Describe by函数可以返回一些有用的统计信息。但是,有没有办法向输出添加额外的行,例如标准偏差 (.std) 和中值绝对偏差 (.mad) 或唯一值的计数?
我明白了,df.describe()但我无法找到如何添加这些额外的摘要内容
我有两个数据框,每个数据框有两列.如果这有助于计算,它们可以是具有相同尺寸的矩阵.
我想要做的是各个位置/行的这些数据帧的总和.
例如,解决方案将在以下列中列出.
21 = 1*1+10*2
42 = 2*1 +20*2
63 = 3*1 + 20*2
a=data.frame(c_1=c(1,2,3),c_2=c(10,20,30))
b=data.frame(c2_1=c(1,1,1),c2_2=c(2,2,2))
Run Code Online (Sandbox Code Playgroud) 我有一个日期随机发生的数据集。例如:
10/21/15、11/21/15、11/22/15、11/28/15、11/30/15、12/12/15...等
我希望按时间段而不是观察级别创建滚动平均值。例如,如果我想计算过去 7 天的移动平均线。我不想查看最后 7 行,而是查看最后 7天
举一个小例子:
dates = c('2015-08-07', '2015-08-08','2015-08-09','2015-09-09','2015-10-10')
value = c(5,10,5,3,2)
df=data.frame(dates, value)
df$desired = c(NA,5,7.5, NA,NA)
Run Code Online (Sandbox Code Playgroud)
显然,我希望对更大的数据集执行此操作,但我希望您明白这一点。例如,如果我使用 7 天,这就是我期望的结果。
请注意,我没有将当前观测值纳入滚动平均值,仅将前一个观测值纳入其中。我想要按时间段滚动平均值,而不是观察行数。
我尝试查看 rollmean 和 dplyr 但我无法弄清楚。我真的不在乎它是如何发生的。
谢谢!
我反复收到错误消息:
错误保存文件:“设备无法识别命令”一遍又一遍(每 15 秒)弹出 - 即使我没有单击保存或单击保存时也是如此。
我也无法加载我文件夹中的 R 文件 - 我必须在记事本中打开它并将其复制粘贴才能看到它。
有人可以让我知道如何解决这个问题吗?我安装了最新版本的 Rstudio。
我是 R 的初学者,所以请原谅。我对文档没有足够的理解来区分这三种形式的 I() 和 poly() 工作方式之间的区别
使用 mtcars 数据集...
xx=lm(mpg~hp+I(hp^2)+I(hp^3), data=mtcars)
yy=lm(mpg~I(hp^3), data=mtcars)
zz=lm(mpg~poly(hp,3), data=mtcars)
summary(xx)
summary(yy)
summary(zz)
Run Code Online (Sandbox Code Playgroud)
所有返回差异结果。我以为 ZZ 会给我与 XX 甚至 YY 相同的结果,但事实并非如此。再一次,如果有人能向我解释这一点,那就太好了
我不确定我是否完全理解因素是如何运作的。因此,如果我错了,请以易于理解的方式纠正我。
我总是假设在进行回归时,R 在幕后将分类变量转换为整数,但这部分超出了我的思路。
它将使用训练集中的分类值,并在构建模型后,检查测试数据集中的相同分类值。无论潜在的“水平”是什么——对我来说都无关紧要。
但是,我一直在思考更多......并且需要澄清 - 特别是如果我在如何解决这个问题上做错了。
train= c("March","April","January","November","January")
train=as.factor(train)
str(train)
Factor w/ 4 levels "April","January",..: 3 1 2 4 2
test= c(c("March","April"))
test=as.factor(test)
str(test)
# Factor w/ 2 levels "April","March",..: 1 2
Run Code Online (Sandbox Code Playgroud)
如果你看到上面的内容,它会创建因子水平,我相信这就是每个月对它们的调用。然而,水平不一定匹配。
例如,在测试中,“APRIL”在两者中都是“1”,但在火车中“JANUARY”是 2,而“MARCH”在 2nd 中是 2。
如果我要将其合并到模型中,我认为我不会出错,因为 TEST 集中的所有分类值都已经在训练集中了……但是会使用适当的系数/值吗?
请帮助我很困惑
如果我使用的是包中提供的数据集,并且我不小心编辑了它并覆盖了某些值,我该如何将其恢复为原始形式?除了卸载包之外,还有其它命令吗?
我有一个数据框,并且我试图将列变成逗号分隔的列表。最终目标是将此逗号分隔的列表作为SQL查询中已过滤项的列表传递。
我该怎么做呢?
> import pandas as pd
>
> mydata = [{'id' : 'jack', 'b': 87, 'c': 1000},
> {'id' : 'jill', 'b': 55, 'c':2000}, {'id' : 'july', 'b': 5555, 'c':22000}]
df = pd.DataFrame(mydata)
df
Run Code Online (Sandbox Code Playgroud)
预期的解决方案-注意id周围的引号,因为它们是字符串,而列中的标题为“ b”的项是引号,因为这是一个数字字段,也是SQL的工作方式。然后我最终会发送一个查询
select * from mytable where ids in (my_ids) or values in (my_values):
Run Code Online (Sandbox Code Playgroud)
my_ids ='jack','jill','july'
my_values = 87,55,5555
有没有办法确保 jupyter 笔记本始终以以下任一开头:
1) 导入某些包和/或 2 设置某些选项
我不想每次都在我运行的每个笔记本的顶部输入相同的内容 - 例如总是使用 numpy 或 pandas。
此外,我总是希望能够看到每个单元格的多个输出。我使用以下代码来让它正常工作,但我希望将其保存为某种模板,这样不需要我每次手动输入。
谢谢!
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
Run Code Online (Sandbox Code Playgroud) r ×7
dataframe ×3
pandas ×2
python ×2
statistics ×2
time-series ×2
csv ×1
factors ×1
pandasql ×1
python-2.7 ×1
rstudio ×1
sum ×1
summary ×1
time ×1