小编Mik*_*ike的帖子

R:从字符串转换为double

我试图将字符串转换为R中的double.但是,每次转换数字时,R都会创建一个整数.

例如:

a = "100.11"  
a = as.double(a)  
Run Code Online (Sandbox Code Playgroud)

输出读取100.从字符串转换为数字时如何保留小数?我已经定了options(digits=3).

谢谢

麦克风

string double r

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

将函数应用于向量中的每个元素组合

我想将某个(自定义)函数应用于数组的所有组合.我认为最好用一个例子来解释:

矩阵1:

A B C
1 2 3
Run Code Online (Sandbox Code Playgroud)

矩阵2:

A B C  
4 5 6
Run Code Online (Sandbox Code Playgroud)

我想执行以下操作:获取Matrix 2的所有组合并对每个组合应用一个函数,如下所示:

矩阵3:

AB  AC  BC  CB  CA  BA  
4/2 4/3 5/3 6/2 6/1 5/1  
Run Code Online (Sandbox Code Playgroud)

应用于Matrix 3的函数是Matrix 2的相应元素(由Matrix 3的每列中的第一个字母表示)/ Matrix 2的相应元素(由Matrix 3中每列的第二个字母表示).

如果有什么不清楚的地方请告诉我,我觉得我可能没有完美解释.

任何帮助将不胜感激!

谢谢

麦克风

r function apply

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

R:使用带有函数的ddply

我正在尝试将"ddply"功能与"summary"功能结合使用,但我遇到了困难.

以下是我的代码摘录:

  orderSubsConsolidate = ddply(merged, .(RIC,leg),summarize,fill.Quant = sum(fill.Quant),
                 fill.Price = function(merged){sum(merged[,7]*merged[,8])/sum(merged[,7})
Run Code Online (Sandbox Code Playgroud)

"合并"是包含我想要总结的信息的矩阵.我按"RIC"和"leg"栏目进行总结.我遇到的问题是将函数应用于fill.Price列.

这是"合并"矩阵的摘录:

Trade      RIC    leg Basket.Name Status  Order.Msg   fill.Quant  fill.Price
  ATNATNP ATNJ.J  1   ATNATNP1a1  Filled               100           200       
  ATNATNP ATNPp.J 2   ATNATNP2a1  Filled               100           200       
  ATNATNP ATNJ.J  1   ATNATNP1b1                       300           400
Run Code Online (Sandbox Code Playgroud)

基本上,上面的代码试图通过RIC和leg聚合fill.Quant列,然后使用[(fill.Price*fill.Quant)/fill.Quant]填充相应的fill.Price列,从而产生如下矩阵:

RIC      leg  fill.Quant  fill.Price
ATNJ.J    1      400            350
ATNPp.J   2      100            350  
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.如果有什么不清楚,请告诉我.

谢谢!

麦克风

r plyr

5
推荐指数
2
解决办法
563
查看次数

R:如何在数组中查找非顺序元素

我有一个包含多个数字的数组,我事先不知道这些数字是什么.我想将数组中与前一个数字不连续的数字分开(除了序列中的第一个数字).

例如:数组: 2 3 4 5 10 11 12 15 18 19 20 23 24

我想回来 2 10 15 18 23

原始数组可以是可变长度的,包括长度为零

谢谢

arrays r sequential

5
推荐指数
2
解决办法
680
查看次数

使用 pd.read_sql 模拟多个数据库调用

我有一个函数,用于pd.read_sql直接从 Python 进行两个 SQL 查询,如下所示:

def get_sql_queries():
   source_data_query = """
        SELECT
              cf."fund" as 'Fund'
            , cf."Symbol"
   FROM
            sql_table
   """

   transactions = pd.read_sql(
        sql=source_data_query,
        con=DEFAULT_CONNECTION,
    )

   other_source_data_query = """
        SELECT
              cf."fund" as 'Fund'
            , cf."Symbol"
   FROM
            other_sql_table
   """
   marks = pd.read_sql(
        sql=other_source_data_query,
        con=DEFAULT_CONNECTION,
    )
   returns transactions,marks

Run Code Online (Sandbox Code Playgroud)

当我从数据库调用时,这工作得很好。

我现在想模拟这些数据库调用以进行测试,这样在source_data_query运行时,它不会调用数据库,而是读入测试数据帧。同样对于other_source_data_query.

更新:根据亚伦的建议进行编辑如下:

import unittest
from unittest import mock
import pandas as pd
from functions import get_transaction_data


class GetSQLQueriesTest(unittest.TestCase):
    @mock.patch('pd.read_sql')
    def test_get_sql_queries(self, mock_read_sql):
        transaction_data = pd.DataFrame(columns=['Fund', 'Symbol'], data=[['Fund 1', …
Run Code Online (Sandbox Code Playgroud)

python sql mocking

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

R:使用数据表来聚合数据

我是新手使用数据表,想要一些帮助聚合一些数据.

Login   OpenTime            CloseTime     OpenedValueUSD    ClosedValueUSD  Year    Month   TransferredValue Identifier
859    04/02/2014 07:55 05/02/2014 15:37    10000               10000       2014    2             0                1
859    07/02/2014 03:16 07/02/2014 03:51    8960.755            8960.755    2014    2             0                2
859    11/02/2014 12:41 13/02/2014 11:56    13635.178           13606.901   2014    2             0                3
859    11/02/2014 13:34 11/02/2014 15:34    13635.178           13635.178   2014    2             13635.178        4
859    12/02/2014 13:46 14/02/2014 09:59    13660.246           13649.278   2014    2             13635.178        5
859    13/02/2014 15:33 13/02/2014 15:42    13606.901           13606.901   2014    2             13660.246        6
859    25/03/2014 14:52 26/03/2014 …
Run Code Online (Sandbox Code Playgroud)

aggregate r data.table

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

PHP:记录用户

我有一个表单,允许用户输入他们的数据.然后,它会根据数据库检查这些数据,以查看用户是否存在.如果是这样,它会将它们记录到某个页面中.

然后,我想允许他们注销(这样他们就无法访问该特定页面).为此,我创建了一个"logout.php"文档,在其中我尝试清除登录详细信息.

但是,完成此操作后,如果我尝试加载登录页面,它会将我带回登录页面.

这是我的代码(login.php - 创建表单并记录用户):

<?php  //Start the Session
session_start();

require('connect.php');
if (isset($_POST['username']) and isset($_POST['password']))
{
    //3.1.1 Assigning posted values to variables.
    $username = $_POST['username'];
    $password = $_POST['password'];

    //3.1.2 Checking if the values exist in the database
    $checkLogin = $connection->query("SELECT * FROM users 
        where (username='$username' && password='$password')");
    $numRows = $checkLogin->fetchColumn();
    //3.1.2 If the posted values are equal to the database values, then session will be created for the user.
    if ($numRows >= 1){
        $_SESSION['username'] = $username;
    }else{
        //3.1.3 If …
Run Code Online (Sandbox Code Playgroud)

html php mysql logout

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

在条件上将函数应用于矩阵元素

我希望根据另一个条目的值更改矩阵中某个条目的值.最简单的解释一个例子:
Matrix

ABC-DEF 1 0 0 0  
HIJ-KLM 0 0 0 0  
NOP-QRS 1 0 0 0  
KLM-HIJ 0 0 0 0  
DEF-ABC 0 0 0 0  
QRS-NOP 0 0 0 0  
Run Code Online (Sandbox Code Playgroud)

如您所见,上面矩阵中的每一行都有一个对应物(例如ABC-DEF的对应物是DEF-ABC).

有什么方法可以让我看看哪一行在第一列中有一个,然后在其对应的第四列中放置一个?在上面的例子中:

ABC-DEF 1 0 0 0  
HIJ-KLM 0 0 0 0  
NOP-QRS 1 0 0 0  
KLM-HIJ 0 0 0 0  
DEF-ABC 0 0 0 2  
QRS-NOP 0 0 0 2
Run Code Online (Sandbox Code Playgroud)

我很困难,真的很感激任何帮助!谢谢!

r function apply

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

R:查找满足条件的行

我已经看到了一些关于此的主题并制定了一个半答案,但我需要的与我所看到的略有不同。我正在寻找满足某些条件的行下面的行。这显然本身就是一个条件,但我不知道如何在 R 中表达它。到目前为止我拥有的代码是:

index = decisionMatrix[,1] == 1 & decisionMatrix[,9] == 1  
decisionMatrix[index,7] = .01  
Run Code Online (Sandbox Code Playgroud)

它将值 0.01 分配给满足该条件的行的第 7 列。我还想使所选行下方的行的第 7 列 = 0.1。

任何帮助将不胜感激!
感谢
迈克

r conditional-statements

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

R:仅将函数应用于特定行

我试图仅将函数应用于满足我的条件的某些行。我从其他线程中看到我应该使用“apply”函数,但我似乎无法让它工作。
这是我到目前为止所拥有的:

a = which(decisionMatrix[,1]>0 & decisionMatrix[,4] < decisionMatrix[,5] &
          tail(ratios,1)>decisionMatrix[4])
Run Code Online (Sandbox Code Playgroud)

这给了我满足我的条件的行数。

然后我使用:

apply(decisionMatrix[10],a,decisionMatrix[,1]/decisionMatrix[,5])
Run Code Online (Sandbox Code Playgroud)

我在这里想做的是“对于满足上述条件的每一行,取该行中的第一列,并将其除以该行中的第五列,并将结果存储在该行的第 10 列中”

有人能给我一些建议吗?

r apply

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