小编Dar*_*ook的帖子

将函数应用于数据框中的每个列,观察每个列的现有数据类型

我正在尝试获取大型数据框中每列的最小值/最大值,作为了解我的数据的一部分.我的第一次尝试是:

apply(t,2,max,na.rm=1)
Run Code Online (Sandbox Code Playgroud)

它将所有内容视为字符向量,因为前几列是字符类型.所以一些数字列的最大值出来了" -99.5".

然后我尝试了这个:

sapply(t,max,na.rm=1)
Run Code Online (Sandbox Code Playgroud)

但它抱怨最大因素没有意义.(lapply是一样的.)令我困惑的是,apply思想max对于因素非常有意义,例如它为第1列返回了"ZEBRA".

顺便说一下,我看了一下在POSIXct矢量使用sapply,其中一个答案是" 当你使用sapply时,你的对象被强制为数字,...... ".这是发生在我身上的事吗?如果是这样,是否有一个不强制的替代应用功能?当然这是一个常见的需求,因为数据框类型的一个关键特征是每列可以是不同的类型.

r apply sapply

49
推荐指数
3
解决办法
12万
查看次数

将相关性显示为有序列表,而不是大型矩阵

我有一个包含100多列的数据框.cor()返回非常快,但告诉我太多,特别是因为大多数列不相关.我想它只是告诉我列对及其相关性,理想情况下是有序的.

如果没有意义,这是一个人为的例子:

df = data.frame(a=1:10,b=20:11*20:11,c=runif(10),d=runif(10),e=runif(10)*1:10)
z = cor(df)
Run Code Online (Sandbox Code Playgroud)

z看起来像这样:

           a          b           c           d          e
a  1.0000000 -0.9966867 -0.38925240 -0.35142452  0.2594220
b -0.9966867  1.0000000  0.40266637  0.35896626 -0.2859906
c -0.3892524  0.4026664  1.00000000  0.03958307  0.1781210
d -0.3514245  0.3589663  0.03958307  1.00000000 -0.3901608
e  0.2594220 -0.2859906  0.17812098 -0.39016080  1.0000000
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一个能告诉我的功能:

a:b -0.9966867 
b:c  0.4026664
d:e -0.39016080  
a:c -0.3892524 
b:d  0.3589663
a:d -0.3514245 
b:e -0.2859906
a:e  0.2594220 
c:e  0.17812098
c:d  0.03958307
Run Code Online (Sandbox Code Playgroud)

我有一个粗暴的方法来摆脱一些噪音:

z[abs(z)<0.5]=0
Run Code Online (Sandbox Code Playgroud)

然后扫描寻找非零值.但它远远低于上述所需的输出.

更新:根据收到的答案,以及一些试验和错误,这是我采用的解决方案:

z[lower.tri(z,diag=TRUE)]=NA  #Prepare to drop duplicates and meaningless information
z=as.data.frame(as.table(z))  #Turn into …
Run Code Online (Sandbox Code Playgroud)

r

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

使用LSTM教程代码来预测句子中的下一个单词?

我一直试图通过https://www.tensorflow.org/tutorials/recurrent来了解示例代码 ,您可以在https://github.com/tensorflow/models/blob/master/tutorials/rnn/ptb找到它./ptb_word_lm.py

(使用tensorflow 1.3.0.)

我总结(我认为是)关键部分,对于我的问题,如下:

 size = 200
 vocab_size = 10000
 layers = 2
 # input_.input_data is a 2D tensor [batch_size, num_steps] of
 #    word ids, from 1 to 10000

 cell = tf.contrib.rnn.MultiRNNCell(
    [tf.contrib.rnn.BasicLSTMCell(size) for _ in range(2)]
    )

 embedding = tf.get_variable(
      "embedding", [vocab_size, size], dtype=tf.float32)
 inputs = tf.nn.embedding_lookup(embedding, input_.input_data)

inputs = tf.unstack(inputs, num=num_steps, axis=1)
outputs, state = tf.contrib.rnn.static_rnn(
    cell, inputs, initial_state=self._initial_state)

output = tf.reshape(tf.stack(axis=1, values=outputs), [-1, size])
softmax_w = tf.get_variable(
    "softmax_w", [size, vocab_size], dtype=data_type()) …
Run Code Online (Sandbox Code Playgroud)

python word2vec lstm tensorflow word-embedding

21
推荐指数
3
解决办法
5746
查看次数

将R脚本从非交互式切换到交互式

我有一个R脚本,它接受命令行参数,其中顶行是:

#!/usr/bin/Rscript --slave
Run Code Online (Sandbox Code Playgroud)

我想中断函数中的执行(因此我可以交互式地使用由该点加载的数据变量来计算我需要编写的下一部分代码).我在有问题的函数中添加了这个:

browser()
Run Code Online (Sandbox Code Playgroud)

但它被忽略了.一些搜索表明它可能是因为程序在非交互模式下运行.但是更多的搜索没有追踪我如何将脚本切换到非交互模式,以便浏览器()可以工作.像browser_yes_I_really_mean_it()功能一样的东西.

PS我想尽可能避免改变脚本的其余部分.我目前的方法是将准备数据所需的代码块复制并粘贴到交互式会话中; 但随着脚本变得越来越复杂,这变得越来越不合理.

更新:对于有同样问题的其他人来说,实际问题的答案似乎是不可能的.一旦你以非交互模式启动R,就会抛出骰子.因此,给定的答案是变通方法:要么你破解你的代码(记得以后再破解它),要么重构以使调试更容易.(此评论不是对答案的批评;建议的重构无论如何都会使代码更清晰.)

r

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

useMethod在这里意味着什么?

关于R的一个关键是,如果我输入函数名称,我会看到实现.但这个让我感到困惑,递归:

> library(xts)
> align.time
function (x, ...) 
{
    UseMethod("align.time")
}
<environment: namespace:xts>
Run Code Online (Sandbox Code Playgroud)

x是一个XTS对象,所以这并不意味着它将调用XTS align.time方法......但这就是我正在看的东西!(键入xts::align.time会给出完全相同的响应.)

r xts

19
推荐指数
2
解决办法
8636
查看次数

PHP的PaaS(平台即服务)

我走了很长的路,找到所有可能的'AppEngine'用于PHP解决方案,但仍然不是我想要的.这是我到目前为止所看到的:

  • pagodabox.com
    • 我爱这些家伙.他们构建了我见过的最好的管理界面,结合了Memcache,MongoDB支持(即将推出)和无缝Github部署等伟大创意.不幸的是,我刚刚得知它们不支持单个服务器上的并发请求.支持人员从字面上告诉我,我将需要一个额外的服务器来处理每个并发请求.(更新:在2011年10月,他们显然改变了这一点并说:" 应用程序实例现在可以处理并发请求. ")
  • phpfog.com
    • 玩了一下吧.他们不支持GitHub并且你绑定了他们的Git服务器 - 你可能喜欢或不喜欢.但你也必须支付箱子.云服务不应该给我机会使用多台机器,但看起来像一个?在这里,我只能看到一个实例.那么好处在哪里?减少管理?
  • cloudcontrol.com
    • 如果我错了,请纠正我,但它们似乎和PHPFog几乎一样.
  • scalarium.com
    • 看起来很棒,成本很高.如果它实际上做了它所承诺的,那么唯一一个真正对我有意义的东西.没有机会尝试一下.

我渴望替代品!

php paas

17
推荐指数
0
解决办法
4853
查看次数

警告:缩小转换C++ 11

g ++ 4.9.0 -O2 -std = c ++ 11

template<class T>
struct vec3 {
    T x, y, z;
    vec3() = default;
    vec3(const vec3<T> &other) = default;
    vec3(T xx, T yy, T zz) { x = xx; y = yy; z = zz; }
    vec3<T> operator-(const vec3<T> &other) { 
      return vec3<T>{ x - other.x, y - other.y, z - other.z }; 
    }
};

int main() {
    vec3<char> pos{ 0, 0, 0 };
    vec3<char> newPos{ 0, 0, 0 };
    auto p = …
Run Code Online (Sandbox Code Playgroud)

c++ templates narrowing c++11

17
推荐指数
2
解决办法
3万
查看次数

将垂直线添加到quantmod :: chart_Series

我想在某个图表上的几个日期添加垂直线条.到目前为止,我还没有完成这项简单的任务.这是我试过的:

> s <- get(getSymbols('nvmi'))["2012::"]
> d1 <- index(s[100])
> d1
[1] "2012-05-24"

> chart_Series(s,TA="addLines(v=d1)")
Error in get.current.chob() : improperly set or missing graphics device

> chart_Series(s)
> abline(v=d1) 
# nothing

> add_TA("addLines(v=d1")
Error in `[.data.frame`(lenv$xdata, Env$xsubset) : 
  undefined columns selected
Run Code Online (Sandbox Code Playgroud)

根据我在这里已经阅读的内容,我知道abline不应该使用新chart_Series功能.它似乎无论如何都不起作用.该addLines功能并没有任何的我试过的形式工作-平原addLines,plot(addLines(...)),chart_Series(..., TA="addLines(...)")add_TA("addLines(...)").

我需要使用quantmod的实验版本,因为它解决了旧版本的其他问题.d1最终会是一个日期列表.

r quantmod

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

R 3.0.0更新使2.x软件包的负载不兼容

在Ubuntu 10.04上,我今天早上更新了一个R(ubuntu)软件包.然后我尝试的第一个R脚本告诉我动物园不是为R 3.0.0构建的.所以我做了sudo R,然后update.packages(ask=F)假设它将把我在过去几年中安装的所有CRAN软件包同步.

但它没有,而动物园,Rcpp,还有更多不起作用.事实上,超过一半的我安装的软件包仍然是为2.xx构建的; 列表如下(x=installed.packages();x[sort.list(x[,'Built']),c('Built','Version','Depends','LinkingTo','NeedsCompilation')])

这很难,并非所有软件包都准备好3.0.0,我应该(在Ubuntu中)恢复到以前的版本?或者我是否需要为3.xx使用不同的CRAN站点?是否会删除所有2.x软件包然后重新安装它们修复它?要么 ...?

                    Built    Version     Depends                                                            LinkingTo             NeedsCompilation 
Defaults            "2.13.1" "1.1-1"     NA                                                                 NA                    NA               
itertools           "2.13.1" "0.1-1"     "R (>= 2.5.0), iterators(>= 1.0.0)"                                NA                    NA               
openNLP             "2.13.1" "0.0-8"     NA                                                                 NA                    NA               
reshape             "2.13.1" "0.8.4"     "R (>= 2.6.1), plyr"                                               NA                    NA               
RUnit               "2.13.1" "0.4.26"    "R (>= 2.5.0), utils (>= 2.5.0), methods (>= 2.5.0)"               NA                    NA               
multicore           "2.14.1" "0.1-7"     "R (>= 2.0.0)"                                                     NA                    NA               
RMySQL              "2.15.0" "0.9-3"     "R (>= 2.8.0), methods, DBI …
Run Code Online (Sandbox Code Playgroud)

r

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

使用casperjs中的节点模块

是否可以安装通过npm安装的节点模块,然后require从casperjs脚本安装它?

(我在node.js中看到很多用于运行casper或phantom的帖子和工具,但这不是我想要做的.)

casperjs文档似乎表示这是可能的,但只能用手写的玩具模块显示,它们并没有真正做任何事情.我正在尝试安装的真实模块是imap,但是在这一点上我无法使用任何模块,甚至是内置的模块net.简单的例子:

npm install imap
echo "var test = require('imap');" > test.js
casperjs test.js
Run Code Online (Sandbox Code Playgroud)

给我:

CasperError: Can't find module imap

/usr/local/src/casperjs/bin/bootstrap.js:263 in patchedRequire
test.js:1
Run Code Online (Sandbox Code Playgroud)

(我可以看到imap模块npm ls,我可以从node.js脚本中使用它.)

或者使用内置模块:

echo "var test = require('net');" > test.js
casperjs test.js
Run Code Online (Sandbox Code Playgroud)

抱怨"找不到模块网"


我有npm --version1.4.14和nodejs --versionv0.10.29.我想知道那些太旧了吗?(Casper是1.1.0-beta,Phantom是1.9.7,两者都是最新版本.)

node.js npm phantomjs casperjs

12
推荐指数
2
解决办法
8031
查看次数