我试图计算一个平均值而不被一小组远离数字(即1,2,1,2,3,4,50)抛弃,单个50将甩掉整个平均值.
如果我有一个这样的数字列表:
19,20,21,21,22,30,60,60
平均为31
中位数是30
模式为21和60(平均为40.5)
但是任何人都可以看到大多数是在19-22(5英寸,3英尺)的范围内,如果你得到的只是主要范围的平均值是20.6(与上面任何一个数字相比差别很大)
我在想你可以这样:
C +博士
c数字的计数在哪里,d是不同的值,r是范围.然后你可以将它应用于所有可能的范围,最高分是获得平均值的最佳范围.
例如,19,20,21,21,22将是5个数字,4个不同的值,范围是3(22 - 19).如果你把它插入我的方程式,你得到5 + 4-3 = 6
如果将其应用于整个数字列表,则为8 + 6-41 = -27
我认为这很好用,但我必须创建一个巨大的循环来测试所有可能的范围.在我的小例子中,有21个可能的范围:
19-19,19-20,19-21,19-22,19-30,19-60,20-20,20-21,20-22,20-30,20-60,21-21,21- 22,21-30,21-60,22-22,22-30,22-60,30-30,30-60,60-60
我想知道是否有更有效的方法来获得这样的平均值.
或者如果某人有更好的算法?
我在提出查询以从以下模式中查找每个巴士公司使用的巴士的平均年龄时遇到问题:
巴士公司
company_id | name
1 NED
2 JIM
Run Code Online (Sandbox Code Playgroud)
总线类型
type_id | date_made
1 2006-01-26
2 1999-05-05
3 2000-09-01
Run Code Online (Sandbox Code Playgroud)
路线
route_id | bustype | bus_company
1 2 1
2 1 1
3 1 1
4 3 2
5 3 2
6 1 2
7 2 2
Run Code Online (Sandbox Code Playgroud)
在这个例子中,假设今天是 2013-03-18,NED 的平均公交车年龄是 4246.666 = 4247 天。
整个查询会是什么样子?
我有这种格式的大型数据集
HF TLLL A T 0.999 NA 0.666 NA 0.566 NA NA 0.87
HF TLLM A T 0.500 0.500 0.666 0.566 NA NA 0.87
Run Code Online (Sandbox Code Playgroud)
我想计算每一行的平均值,从第5列开始直到行结束,并忽略字符串NA.然后将平均值附加到每行的末尾.
输出看起来像这样:
HF TLLL A T 0.999 NA 0.666 NA 0.566 NA NA 0.87 0.775
HF TLLM A T 0.500 0.500 0.666 0.566 NA NA 0.87 0.620
Run Code Online (Sandbox Code Playgroud)
我一直得到这样的总和,但无法弄清楚如何跟踪求和的整数数,以便计算平均值.
awk '{x=0;for(i=5;i<=NF;i++)x=x+$i;print $0, x}'
Run Code Online (Sandbox Code Playgroud) 我有以下查询获取数据,我创建每过去一小时的聚合:
query = {
"query": {
"bool": {
"must": [
{ "term": {"deviceId":device} },
{ "match": {"eventType":"Connected"} }
],
"must_not":[{
"query_string": {
"query": "Pong",
"fields": ["data.message"]
}
},
]
},
},
"size": 0,
"sort": [{ "timestamp": { "order": "desc" }}],
"aggs" : {
"time_buckets" : {
"date_histogram" : {
"field" : "timestamp",
"interval" : "hour",
},
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想得到每小时间隔(由聚合创建的每个桶)的字段的平均值.在这篇文章中,他们谈论了类似于我想做的事情:http: //www.elasticsearch.org/guide/en/elasticsearch/guide/current/_looking_at_time.html ("我们网站每小时的平均延迟是多少?在上周?").但是,他们没有解释在这种情况下究竟要做什么.
有谁知道这是怎么做到的吗?
我有我的脚本,它从 csv 文件中读取数据。我正在计算平均值,但我希望将图表上的平均值视为水平线。
avg = myData$Electricity.Costs
mean(avg)
ggplot(data = myData,
aes(x = Date, y = Electricity.Costs,
group = Budget.Plan.Monthly.Amount, colours = "Budget.Plan.Monthly.Amount")) +
geom_line() +
geom_point(aes(colour = Budget.Plan.Monthly.Amount))
Run Code Online (Sandbox Code Playgroud)
你能给我一些建议吗?
我有三个市场(GLD,SPY和USO)的每日回报.我的目标是从130天的滚动基础上的相关矩阵计算平均成对相关性.
我的出发点是:
import numpy as np
import pandas as pd
import os as os
import pandas.io.data as web
import datetime as datetime
from pandas.io.data import DataReader
stocks = ['spy', 'gld', 'uso']
start = datetime.datetime(2010,1,1)
end = datetime.datetime(2016,1,1)
df = web.DataReader(stocks, 'yahoo', start, end)
adj_close_df = df['Adj Close']
returns = adj_close_df.pct_change(1).dropna()
returns = returns.dropna()
rollingcor = returns.rolling(130).corr()
Run Code Online (Sandbox Code Playgroud)
这创建了一组相关矩阵.然而,提取下部(或上部)三角形,移除对角线然后计算每个观察的平均值是我画了一个空白.理想情况下,我希望每个日期的输出都在一个系列中,然后我可以按日期对其进行索引.
也许我从错误的地方开始,但任何帮助将不胜感激.
我在 mongodb 中有这个数据
{
"name": "FooBar",
"__v": 0,
"user_rating": [
{
"date": "2017-06-02T16:19:32.002Z",
"user_rating": 5,
},
{
"date": "2017-06-02T16:19:46.803Z",
"user_rating": 3,
},
{
"date": "2017-06-02T16:20:01.244Z",
"user_rating": 5,
},
{
"date": "2017-06-02T16:15:54.673Z",
"user_rating": 3,
},
{
"date": "2017-06-02T16:53:42.489Z",
"user_rating": 5,
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要过滤它以显示商店名称、平均评分、评分总数以及有多少 5 评分、多少 4 评分等。
这就是我所期待的:
[
{
"_id":"FooBar",
"countRating":5,
"averageRating":4.2,
"ratings": [
{"num":3,"count":2},
{"num":5,"count":3}
]
}
]
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法获得averageRating - 相反,我获得了每个评分的两个总和的平均值。
这是我的 Mongo 查询:
db.collection.aggregate([
{
$match: {"name": "FooBar"}
},
{
$unwind: "$user_rating"
},
{
$match: {"name": "FooBar"} …Run Code Online (Sandbox Code Playgroud) 我有一个这样的熊猫数据框;
>df
leg speed
1 10
1 11
1 12
1 13
1 12
1 15
1 19
1 12
2 10
2 10
2 12
2 15
2 19
2 11
: :
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列roll_speed,该列需要最近5个位置的滚动平均速度。但我想在其中添加更详细的条件。
leg(它没有考虑到不同行中行的速度leg。我希望根据可用的行将滚动窗口从1个最大值更改为5个最大值。例如leg == 1,在第一行中,只有一行要计算,因此滚动速度应为10/1 = 10。对于第二行,只有两行可用于计算,轧制速度应为(10+11)/2 = 10.5。
leg speed roll_speed
1 10 10 # 10/1
1 11 10.5 # (10+11)/2
1 12 11 # (10+11+12)/3
1 13 11.5 # (10+11+12+13)/4
1 12 …Run Code Online (Sandbox Code Playgroud)我已将 JSON 数据导入到我的工作表中。我想对导入的数据使用诸如=STDEV和 之类的函数,但如果这样做,我就会不断收到错误。我能做什么来解决这个问题?=AVERAGE#div/0
json average google-sheets array-formulas google-sheets-formula
我正在尝试用 R 编写以下游戏:
我尝试手动模拟如下 - 我首先使用 R 中的“runif”命令多次“掷骰子”,希望您最终会看到 4 后面跟着 6 (我不知道如何使用“直到循环”进行编码)。我重复了 100 次,并将所有这些卷放入数据框中:
roll_1 = floor(runif(100, min=1, max=6))
roll_2 = floor(runif(100, min=1, max=6))
roll_3 = floor(runif(100, min=1, max=6))
roll_4 = floor(runif(100, min=1, max=6))
roll_5 = floor(runif(100, min=1, max=6))
#etc
roll_100 = floor(runif(100, min=1, max=6))
all_rolls = data.frame(roll_1, roll_2, roll_3, roll_4, roll_5, roll_100)
Run Code Online (Sandbox Code Playgroud)
这看起来如下:
head(all_rolls)
roll_1 roll_2 roll_3 roll_4 roll_5 roll_100
1 4 2 …Run Code Online (Sandbox Code Playgroud) average ×10
pandas ×2
python ×2
r ×2
algorithm ×1
arrays ×1
awk ×1
correlation ×1
datahistory ×1
ggplot2 ×1
javascript ×1
json ×1
loops ×1
mongodb ×1
php ×1
postgresql ×1
probability ×1