小编Hal*_*Ali的帖子

为什么R中有两个赋值运算符`` - 和` - >`?

我知道如何使用<-->,并且有 几个 writeups上的区别equals的分配和箭头分配,但是我不知道什么时候喜欢-><-.

社区似乎已经联合使用<-了作业.

谷歌R风格指南和Hadley Wickam的tidyverse R风格指南都没有->在作业部分提及.

我很好奇设计考虑因素导致S/S-PLUS开发人员放入右箭头分配操作员->.在什么样的设置(S)将使用->被认为是更可读(或更容易输入)与<-=

我不熟悉允许右分配语义的任何其他语言.在这方面,哪些语言激发了R?

我正在寻找引用书籍/早期设计文档/用户手册/存档邮件列表或其他参考文献的答案,以确定S作者/设计者的意图是放入前向箭头赋值运算符.

language-design r s

43
推荐指数
4
解决办法
2445
查看次数

ensure_future在模块asyncio中不可用

我正在尝试从python asyncio任务和协同程序文档中运行此示例

import asyncio

@asyncio.coroutine
def slow_operation(future):
    yield from asyncio.sleep(1)
    future.set_result('Future is done!')

def got_result(future):
    print(future.result())
    loop.stop()

loop = asyncio.get_event_loop()
future = asyncio.Future()
asyncio.ensure_future(slow_operation(future))
future.add_done_callback(got_result)
try:
    loop.run_forever()
finally:
    loop.close()
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'ensure_future'
Run Code Online (Sandbox Code Playgroud)

这条线似乎让我感到悲痛:

asyncio.ensure_future(slow_operation(future))
Run Code Online (Sandbox Code Playgroud)

我的python解释器在OSX Yosemite上是3.4.3,我上面链接的文档版本,我从中复制了这个例子,所以我应该得到这个错误.这是我的python解释器的终端抓取:

Python 3.4.3 (default, Feb 25 2015, 21:28:45) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more …
Run Code Online (Sandbox Code Playgroud)

python python-asyncio

10
推荐指数
1
解决办法
6912
查看次数

将词典列表转换为列表

我有一个这种形式的字段列表

fields = [{'name':'count', 'label':'Count'},{'name':'type', 'label':'Type'}]
Run Code Online (Sandbox Code Playgroud)

我想提取名称并将其放入列表中.目前,我这样做:

names = [] 
for field in fields:
    names.append(field['name'])
Run Code Online (Sandbox Code Playgroud)

还有另一种方法可以做同样的事情,不涉及循环列表.

我正在使用python 2.7.

谢谢你的帮助.!

python dictionary list python-2.7

8
推荐指数
2
解决办法
4984
查看次数

将常量列添加到pandas数据框的更好方法

目前,当我必须向现有数据框添加常量列时,我会执行以下操作.对我来说,似乎并不是那么优雅(我乘以数据帧长度的部分).想知道是否有更好的方法来做到这一点.

import pandas as pd

testdf = pd.DataFrame({'categories': ['bats', 'balls', 'paddles'],
                       'skus': [50, 5000, 32],
                       'sales': [500, 700, 90]})

testdf['avg_sales_per_sku'] = [testdf.sales.sum() / testdf.skus.sum()] * len(testdf)
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
1
解决办法
2万
查看次数

扁平化多指数柱的简洁方法

在groupby-aggregate中使用多个函数会产生一个多索引,然后我想要展平.

例:

df = pd.DataFrame(
    {'A': [1,1,1,2,2,2,3,3,3],
     'B': np.random.random(9),
     'C': np.random.random(9)}
)
out = df.groupby('A').agg({'B': [np.mean, np.std], 'C': np.median})

# example output

          B                   C
       mean       std    median
A
1  0.791846  0.091657  0.394167
2  0.156290  0.202142  0.453871
3  0.482282  0.382391  0.892514
Run Code Online (Sandbox Code Playgroud)

目前,我是这样手动完成的

out.columns = ['B_mean', 'B_std', 'C_median']
Run Code Online (Sandbox Code Playgroud)

这给了我想要的结果

     B_mean     B_std  C_median
A
1  0.791846  0.091657  0.394167
2  0.156290  0.202142  0.453871
3  0.482282  0.382391  0.892514
Run Code Online (Sandbox Code Playgroud)

但是我正在寻找一种自动化这个过程的方法,因为这是单调的,耗时的,并且允许我在重命名列时进行拼写错误.

在进行groupby-aggregate时,有没有办法返回扁平索引而不是多索引?

我需要将列展平以保存到文本文件,然后由不处理多索引列的其他程序读取该文件.

pandas pandas-groupby

7
推荐指数
4
解决办法
3982
查看次数

sqlalchemy,混合财产案例陈述

这是我试图通过sqlalchemy生成的查询

SELECT "order".id AS "id", 
"order".created_at AS "created_at", 
"order".updated_at AS "updated_at", 
CASE 
WHEN box.order_id IS NULL THEN "special" 
ELSE "regular" AS "type"
FROM "order" LEFT OUTER JOIN box ON "order".id = box.order_id
Run Code Online (Sandbox Code Playgroud)

在sqlalchemy的文档之后,我尝试使用hybrid_property来实现这一点.这就是我到目前为止所做的,而且我没有得到正确的陈述.它没有正确生成案例陈述.

from sqlalchemy import (Integer, String, DateTime, ForeignKey, select, Column, create_engine)
from sqlalchemy.orm import relationship, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.hybrid import hybrid_property

Base = declarative_base()
class Order(Base):
    __tablename__ = 'order'
    id = Column(Integer, primary_key=True)
    created_at = Column(DateTime)
    updated_at = Column(DateTime)
    order_type = relationship("Box", backref='order')
    @hybrid_property
    def …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy python-3.x

5
推荐指数
1
解决办法
1887
查看次数

QuickCheck是否可以生成任意函数

我试图为身份编写一个 QuickCheck 测试

f $ y = f y
Run Code Online (Sandbox Code Playgroud)

我最初的计划是编写一个返回函数和整数的任意生成器,具有签名Gen (Int -> Int, Int)

并且在prop_DollerDoesNothing测试中,带/不带函数应用程序$给出相同的结果。

这是我的代码:

  prop_DollarDoesNothing :: Property
  prop_DollarDoesNothing =
    forAll arbitraryFuncInt (\(f, y) -> (f $ y) == (f y))

  arbitraryFuncInt :: Gen (Int -> Int, Int)
  arbitraryFuncInt = do
    f <- elements [(\x -> x*2), (\x -> x+3), (\x -> x-2)]
    y <- arbitrary :: Gen Int
    return (f, y)
Run Code Online (Sandbox Code Playgroud)

它生成了以下有用的错误消息:

    * No instance for (Show (Int -> Int))
        arising from a …
Run Code Online (Sandbox Code Playgroud)

haskell quickcheck

4
推荐指数
1
解决办法
1567
查看次数

Bifunctor实例定义上的类型签名不匹配

我通过阅读《第一原理》(Allen&Moronuki)的《Haskell编程》一书来学习Haskell 。

在有关Monad Transformers,Functor和Applicative组成部分的练习中,它要求读者为以下类型编写Bifunctor实例

data SemiDrei a b c = SemiDrei a
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试(编译)是

instance Bifunctor (SemiDrei a) where
    bimap f g (SemiDrei a) = SemiDrei a
Run Code Online (Sandbox Code Playgroud)

但是,看着它,在我看来我应该应该能够写,bimap f g = id因为最后一个参数不变或写了bimap f g x = x。两者都给我带来了编译错误,并且我希望有人可以向我解释为什么我不能bimap用这些较短的替代方法来表达,即为什么我必须指定(SemiDrei a)

我在Haskell 8.6.5上运行了此命令(如果相关)

尝试:ID

instance Bifunctor (SemiDrei a) where
    bimap f g = id

-- compile error message:
• Couldn't match type ‘a1’ with ‘b’
  ‘a1’ is a rigid type variable bound …
Run Code Online (Sandbox Code Playgroud)

haskell types bifunctor

4
推荐指数
2
解决办法
62
查看次数

enumFromTo如何在haskell中工作,以及哪些优化加速了GHC实现与天真实现之间的关系

我正在学习haskell,其中一个练习要求我写一个相当于的函数enumFromTo.

我想出了以下两个实现:

eft' :: Enum a => a -> a -> [a]
eft' x y = go x y []
  where go a b sequence
          | fromEnum b < fromEnum a = sequence
          | otherwise = go (succ a) b (sequence ++ [a])

eft :: Enum a => a -> a -> [a]
eft x y = go x y []
  where go a b sequence
          | fromEnum b < fromEnum a = sequence
          | otherwise = go …
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
1
解决办法
93
查看次数

在 PostgreSQL 12 上使用 WITH 查找唯一值、计算重复项并对它们进行排名

我有 3 个复杂的表。对于这个问题,我就简化一下用法。我需要排名、计数(重复)和唯一记录(结果)。它适用于单个表,但是,当WITH包含并INNER JOIN给出另一个表时,我不再获得任何记录。

表格:

CREATE TABLE public.emails (
  id                bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY
    (MAXVALUE 9223372036854775807),
  sender            jsonb NOT NULL
);


CREATE TABLE public.contacts (
  id                bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY
    (MAXVALUE 9223372036854775807),
  email            text NOT NULL,
  full_name            text NOT NULL
);
-- sample data
insert into emails (sender) VALUES ('{"email": "dennis1@example.com", "name": "dennis1"}');
insert into emails (sender) VALUES ('{"email": "dennis1@example.com", "name": "dennis1"}');

insert into …
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgresql-12

1
推荐指数
1
解决办法
771
查看次数