我正在尝试获取大型数据框中每列的最小值/最大值,作为了解我的数据的一部分.我的第一次尝试是:
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时,你的对象被强制为数字,...... ".这是发生在我身上的事吗?如果是这样,是否有一个不强制的替代应用功能?当然这是一个常见的需求,因为数据框类型的一个关键特征是每列可以是不同的类型.
我有一个包含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) 我一直试图通过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) 我有一个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的一个关键是,如果我输入函数名称,我会看到实现.但这个让我感到困惑,递归:
> 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会给出完全相同的响应.)
我走了很长的路,找到所有可能的'AppEngine'用于PHP解决方案,但仍然不是我想要的.这是我到目前为止所看到的:
我渴望替代品!
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) 我想在某个图表上的几个日期添加垂直线条.到目前为止,我还没有完成这项简单的任务.这是我试过的:
> 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最终会是一个日期列表.
在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) 是否可以安装通过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,两者都是最新版本.)