小编Dar*_*ook的帖子

如何在给定时间戳的情况下从zoo/xts对象中删除行

我很高兴使用这段代码:

z=lapply(filename_list, function(fname){
    read.zoo(file=fname,header=TRUE,sep = ",",tz = "")
    })
xts( do.call(rbind,z) )
Run Code Online (Sandbox Code Playgroud)

直到Dirty Data在一个文件的末尾出现:

                        Open     High      Low    Close Volume
2011-09-20 21:00:00 1.370105 1.370105 1.370105 1.370105      1
Run Code Online (Sandbox Code Playgroud)

这是在下一个文件的开头:

                        Open     High      Low  Close Volume
2011-09-20 21:00:00 1.370105 1.371045 1.369685 1.3702   2230
Run Code Online (Sandbox Code Playgroud)

所以rbind.zoo抱怨重复.

我不能使用:

 y <- x[ ! duplicated( index(x) ),  ]
Run Code Online (Sandbox Code Playgroud)

因为它们在不同的动物园对象中,在列表中.我不能aggregate这里建议的那样使用,因为它们是动物园对象的列表,而不是一个大的动物园对象.而且我无法得到一个重要的对象.第二十二条军规.

所以,当事情变得艰难时,强硬的黑客攻击一些for循环(原谅印刷品和停止,因为这还不是工作代码):

indexes <- do.call("c", unname(lapply(z, index)))
dups=duplicated(indexes)
if(any(dups)){
    duplicate_timestamps=indexes[dups]
    for(tix in 1:length(duplicate_timestamps)){
        t=duplicate_timestamps[tix]
        print("We have a duplicate:");print(t)
        for(zix in 1:length(z)){
            if(t %in% …
Run Code Online (Sandbox Code Playgroud)

r zoo xts

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

如何对mutliple列进行累积逻辑运算

我在xts对象中有多个列,我想在第一列中找到一定数量以上的百分比,在第一列或第二列中高于某个数字的百分比,前三列中任何一列中的百分比超过一定数量等

我目前正在手动执行此操作,如下所示:

library(xts)
set.seed(69) 
x = xts( cbind( v.1 = runif(20)*100,  v.2 = runif(20)*100,   v.3 = runif(20)*100,   v.4 = runif(20)*100), Sys.Date()-20:1 )

c(
  mean( x$v.1 > 50),
  mean( x$v.1 > 50 | x$v.2 > 50) ,
  mean( x$v.1 > 50 | x$v.2 > 50 | x$v.3 > 50) ,
  mean( x$v.1 > 50 | x$v.2 > 50 | x$v.3 > 50 | x$v.4 > 50)
  )
Run Code Online (Sandbox Code Playgroud)

这给出了这个示例输出:

[1] 0.50 0.70 0.80 0.95
Run Code Online (Sandbox Code Playgroud)

但现在我要推广到任意数量的列,而不仅仅是v.1v.4.所以我正在寻找一个像这样的单一函数:

this_is_mean( x, c('v.1','v.2','v.3','v.4'), …
Run Code Online (Sandbox Code Playgroud)

r xts

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

concat列表中的pandas数据框,但忽略了列名

小标题:将它愚蠢到大熊猫,不要试图变得聪明.

我有一个list(res)的单列pandas数据帧,每个数据帧都包含相同类型的数字数据,但每个都有不同的列名.行索引没有意义.我想将它们放入一个非常长的单列数据帧中.

当我这样做时,pd.concat(res)我为每个输入文件(以及NaN单元的加载和加载)获得一列.我已经为参数(*)尝试了各种值,但没有一个能够完成我所追求的目标.

编辑:示例数据:

res = [
    pd.DataFrame({'A':[1,2,3]}),
    pd.DataFrame({'B':[9,8,7,6,5,4]}),
    pd.DataFrame({'C':[100,200,300,400]}),
]
Run Code Online (Sandbox Code Playgroud)

我有一个丑陋的黑客解决方案:复制每个数据框并给它一个新的列名:

newList = []
for r in res:
  r.columns = ["same"]
  newList.append(r)
pd.concat( newList, ignore_index=True )
Run Code Online (Sandbox Code Playgroud)

当然这不是最好的方法吗?

顺便说一句,熊猫:不同列名的concat数据框是相似的,但我的问题更简单,因为我不想保持索引.(我还从N个单列数据帧的列表开始,而不是单个N列数据帧.)

*:例如axis=0,默认行为.axis=1给出错误.join="inner"只是愚蠢(我只得到索引).ignore_index=True重新编号索引,但我得到了很多列,很多NaN.


更新空列表

当数据有一个空列表时,我遇到了问题(使用所有给定的解决方案),例如:

res = [
    pd.DataFrame({'A':[1,2,3]}),
    pd.DataFrame({'B':[9,8,7,6,5,4]}),
    pd.DataFrame({'C':[]}),
    pd.DataFrame({'D':[100,200,300,400]}),
]
Run Code Online (Sandbox Code Playgroud)

诀窍是通过添加强制类型.astype('float64').例如

pd.Series(np.concatenate([df.values.ravel().astype('float64') for df in res]))
Run Code Online (Sandbox Code Playgroud)

要么:

pd.concat(res,axis=0).astype('float64').stack().reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)

python rbind pandas

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

如何阻止textarea从其包含的div中调整大小

我一直在玩响应式布局和表单.到目前为止,我对我所拥有的东西感到非常满意:它从手机到宽屏都能很好地工作; 见下文.(目前仅在firefox/chrome上测试过.)

在800px宽度处,它将消息块移动到右列.问题是这是用float:right和position:absolute来完成的,这意味着它的高度会停止影响周围的div.所以消息框突出.

我可以(并且做)通过添加高度:220px来改善这一点,所以默认情况下看起来没问题.但有人仍然可以调整周围div之外的textarea.我发现将textareas调整为一个很棒的功能,所以不要禁止调整大小.而溢出:auto不是解决方案:用户只需在textarea上交换滚动条就div上的滚动条!

那么,有没有办法让外部div调整大小以始终包含textarea?

<html>
<head>
<style>
body{background:#fff;font-family:FreeSerif, serif;font-size:16px;margin: 0 0 0 0;}

#contactform {margin: 0 auto;width:90%;max-width:320px;border:1px #000 solid;border-radius:8px;padding:6px;}
#contactform .required:after{color:red;content:" *";}
#contactform label {display:block;}
#contactform textarea {height:120px;rows:5;min-width:90%;max-width:90%;}
#contactform input,textarea {border: 1px solid red;border-radius:8px;width:90%;height:26px;padding:2px 4px;font-family:sans;}

@media (min-width: 800px) {
#contactform {margin: 0 auto;width:640px;max-width:640px;position:relative;/*height:220px;*/}
#formsecondhalf {top:0;right:6px;position:absolute;}
#contactform textarea {height:200px;rows:8;min-height:200px;min-width:300px;max-width:300px;}
#contactform input,textarea {width: 300px;min-width:300px;max-width:300px;}
}

</style>
</head>
<body>
<div id="contactform">
<form action="" method="post">
<label for="name" class="required">Name:</label>
<input id="name">
<br/>
<label for="email" class="required">Email:</label>
<input id="email">
<br/>
<div id="formsecondhalf">
<label for="message">Message:</label>
<textarea id="message"></textarea> …
Run Code Online (Sandbox Code Playgroud)

html css-position css-float responsive-design

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

malloc/free in C++:为什么free不接受const void*,有更好的方法吗?

将C++ 11代码连接到一些C回调,我必须传递const char * const *,即一个字符串数组.这是我的代码的简化版本:

int main(int,char**){
  const int cnt = 10;
  const char * const * names =
    static_cast<const char * const *>(malloc( sizeof(char*) * cnt));
  //... allocating names[0], etc. coming soon ...
  the_c_function(names);
  free(names);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以我研究了如何malloc在C++中使用,但我坚持free,因为它告诉我:"从'const void*'无效转换为'void*'[-fpermissive]"

我的第一反应是"呃?你为什么关心,所有你需要做的就是释放指针." 第二反应是把它扔掉.但这会被编译器拒绝:

free( const_cast<void*>(names) );
Run Code Online (Sandbox Code Playgroud)

这也是如此:

free( static_cast<void*>(acctnames) );
Run Code Online (Sandbox Code Playgroud)

例如"从类型'const char*const*'中的static static_cast'到'void*'类型".

什么的工作是一个很好的"OLEÇ投:

free( (void*)(acctnames) );
Run Code Online (Sandbox Code Playgroud)

那是安全的,还是我在这里遗漏了什么?(valgrind告诉我"所有堆块都被释放 - 没有泄漏可能",这是一种安慰!)

PS在Linux上使用g ++ 4.8.1.

更新:解释为什么free()想要一个非常量指针在这里:无法释放C中的常量指针 (虽然我发现barak …

c c++

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

根据因子绘制使用不同颜色的时间序列

我想绘制一条多色的线,颜色基于一个因子中的相应值.例如,每日股票收盘价的时间序列,其上涨超过一定数量的天数为蓝色,其中已经完成的天数为红色,其他日期为红色.无聊的黑色.

我的数据在一个xts对象中(其中包含因子as.numeric(myfactor)),我想使用quantmod chartSerieschart_Series函数.但如果这是不可能的,那么使用的东西plot就足够了.

一些样本数据:

library(xts)
x = xts( data.frame( v=(rnorm(50)+10)*10, type=floor(runif(50)*4) ),
  order.by=as.Date("2001-01-01")+1:50)
Run Code Online (Sandbox Code Playgroud)

我可以像这样绘制它:

library(quantmod)
chartSeries(x$v)
addTA(x$type, type='p')
Run Code Online (Sandbox Code Playgroud)

看起来像这样: 使用chartSeries绘图

即如果使用彩色线段,我觉得将底部图表中的信息与顶部图表相匹配会更容易.

r xts quantmod

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

如何合并具有略微不同列的xts对象?

给出了各种一行xts对象:

z1 = xts(t(c("9902"=0,"9903"=0,"9904"=0,"9905"=2,"9906"=2)),as.Date("2015-01-01"))
z2 = xts(t(c("9902"=3,"9903"=4,"9905"=6,"9906"=5,"9908"=8)),as.Date("2015-01-02"))
z3 = xts(t(c("9901"=1,"9903"=3,"9905"=5,"9906"=6,"9907"=7,"9909"=9)),as.Date("2015-01-03"))
Run Code Online (Sandbox Code Playgroud)

我想将它们合并到一个xts对象中.但是cbind(z1,z2,z3)给出:

           X9902 X9903 X9904 X9905 X9906 X9902.1 X9903.1 X9905.1 X9906.1 X9908 X9901 X9903.2 X9905.2 X9906.2 X9907 X9909
2015-01-01     0     0     0     2     2      NA      NA      NA      NA    NA    NA      NA      NA      NA    NA    NA
2015-01-02    NA    NA    NA    NA    NA       3       4       6       5     8    NA      NA      NA      NA    NA    NA
2015-01-03    NA    NA    NA    NA    NA      NA      NA      NA      NA    NA     1       3       5       6     7     9 …
Run Code Online (Sandbox Code Playgroud)

r xts

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

在页面底部或HTML部分有pandoc脚注吗?

我开始在Markdown中使用内联脚注:

Some text^[an aside here]. More text.
Run Code Online (Sandbox Code Playgroud)

当我使用pandoc导出到HTML时,它们出现在整个文档的末尾,但在PDF中它们出现在页面的末尾.我更喜欢它们在页面的末尾,我想知道是否有办法在HTML中以这种方式获取它们?

我意识到页面末尾会因HTML而变得复杂; 对于我来说,结尾部分也会起作用.实际上,将它们放在PDF的部分末尾而不是页面的末尾也可能有用.(我已尝试将其---作为分节符,但脚注仍然在文档末尾.)

(我也试过制作pdf,然后pdf2html,哪种工作但是真的很难看.Pandoc似乎不支持pdf到html,我得到"无法解码字节'\ xd0'......")


(这不是重复:在Pandoc Markdown输出中生成内联而不是列表样式的脚注? 这个问题是关于从另一种格式转换 markdown格式时脚注的处理方式.)

markdown pandoc

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

如何知道 R 完成了多少个深度学习 epoch?

默认情况下,提前停止处于启用状态h2o.deeplearning()。但是,从 R 中,我如何知道它是否确实提前停止了,以及它停止了多少个纪元?我试过这个:

model = h2o.deeplearning(...) print(model)

它告诉我有关层、MSE、R2 等的信息,但没有告诉我运行了多少个 epoch。

在 Flow 上,我可以看到信息(例如,“评分历史 - 偏差”图表或评分历史表中 x 轴停止的位置)。

r h2o

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

找不到模块:错误:无法解析“加密”

错误信息:

重大更改:webpack < 5 默认情况下包含 Node.js 核心模块的 Polyfill。这已不再是这种情况。验证您是否需要此模块并为其配置一个polyfill。

所以我在谷歌上搜索这个问题并找到了很多解决方案。所以我想和大家分享一下:

  1. 首先,这种情况不仅可能发生在加密货币领域,也可能发生在 http、https、操作系统等其他领域。

  2. 检查数据包是否安装(本例已安装 crypto-browserify) 应该有一个文件夹 node_modules\crypto-browserify

如果不存在:npm install crypto browsrify,则yarn add @types/node@15.12.5 -D(对于此节点版本)

在node_modules\crypto-browserify中编辑package.json并添加

 , 
 "optionalDependencies": {},
 "browser": {
   "crypto": false
 },
Run Code Online (Sandbox Code Playgroud)

(在 devDependency 之后)

  1. 在 tsconfig.json 下添加
"compilerOptions": {
"paths":{
   "crypto":["node_modules/crypto-browserify"],
   "http":["node_modules/stream-http"],
   "https":["node_modules/https-browserify"]
   },
Run Code Online (Sandbox Code Playgroud)
  1. 在angluar.json下添加
"architect": {
   "build": {
   "builder": "@angular-devkit/build-angular:browser",
   "options": {
      "allowedCommonJsDependencies": ["crypto"],
      "allowedCommonJsDependencies": ["http"],
      "allowedCommonJsDependencies": ["https"],
Run Code Online (Sandbox Code Playgroud)

node.js angularjs angular

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