小编Sco*_*hie的帖子

从android执行shell命令

我正在尝试从应用程序模拟器终端执行此命令(您可以在谷歌播放中找到它)在这个应用程序中我写su并按enter,所以写道:

screenrecord --time-limit 10 /sdcard/MyVideo.mp4

然后再次按下enter并使用android kitkat的新功能开始录制屏幕.

所以,我尝试使用以下方法从java执行相同的代码:

Process su = Runtime.getRuntime().exec("su");
Process execute = Runtime.getRuntime().exec("screenrecord --time-limit 10 /sdcard/MyVideo.mp4");
Run Code Online (Sandbox Code Playgroud)

但是不起作用,因为没有创建文件.显然我在安装了android kitkat的root设备上运行.问题出在哪儿?我怎么解决?因为从终端模拟器工作和Java不?

java xml shell android android-4.4-kitkat

38
推荐指数
3
解决办法
10万
查看次数

R包开发中的代码组织

当开发R所有R源文件中的包放在子目录中时R/,所有编译的代码都放在子目录中src/.

我想在这些文件夹中添加一些组织到文件,而不是将所有内容都转储到顶层.例如,假设我假设开发了一个客户端 - 服务器应用程序.从逻辑上讲,我想组织我的所有客户端R源文件R/client/和我的所有服务器R源文件R/server/.

在开发包时是否可以在子文件夹中组织代码,如果是,如何?在写作R附加手册没有提供任何指引,也没有 R CMD build检测到存储在子文件夹下的文件R/.

r package

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

igraph创建加权邻接矩阵

我正在尝试使用该igraph包来绘制(稀疏)加权图.我目前有一个邻接矩阵,但无法获得graph.adjacency识别边权重的功能.

考虑以下随机对称矩阵:

m <- read.table(row.names=1, header=TRUE, text=
"           A          B          C          D           E         F
A 0.00000000  0.0000000  0.0000000  0.0000000  0.05119703 1.3431599
B 0.00000000  0.0000000 -0.6088082  0.4016954  0.00000000 0.6132168
C 0.00000000 -0.6088082  0.0000000  0.0000000 -0.63295415 0.0000000
D 0.00000000  0.4016954  0.0000000  0.0000000 -0.29831267 0.0000000
E 0.05119703  0.0000000 -0.6329541 -0.2983127  0.00000000 0.1562458
F 1.34315990  0.6132168  0.0000000  0.0000000  0.15624584 0.0000000")
m <- as.matrix(m)
Run Code Online (Sandbox Code Playgroud)

为了绘图,首先我必须将这个邻接矩阵变为正确的igraph格式.这应该是相对简单的graph.adjacency.根据我阅读的文档graph.adjacency,我应该做以下事情:

library(igraph)
ig <- graph.adjacency(m, mode="undirected", weighted=TRUE)
Run Code Online (Sandbox Code Playgroud)

但是,它无法识别边缘权重:

str(ig)
# IGRAPH …
Run Code Online (Sandbox Code Playgroud)

r igraph

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

融化多组measure.vars

我有一个data.table包含多年变量的变量,即:

> dt <- data.table(id=1:3, A_2011=rnorm(3), A_2012=rnorm(3), 
                           B_2011=rnorm(3), B_2012=rnorm(3), 
                           C_2011=rnorm(3), C_2012=rnorm(3))
> dt
   id     A_2011       A_2012    B_2011     B_2012     C_2011     C_2012
1:  1 -0.8262134  0.832013744 -2.320136  0.1275409 -0.1344309  0.7360329
2:  2  0.9350433  0.279966534 -0.725613  0.2514631  1.0246772 -0.2009985
3:  3  1.1520396 -0.005775964  1.376447 -1.2826486 -0.8941282  0.7513872
Run Code Online (Sandbox Code Playgroud)

我希望按年将这个表融化为变量组,即:

> dtLong <- data.table(id=rep(dt[,id], 2), year=c(rep(2011, 3), rep(2012, 3)), 
                       A=c(dt[,A_2011], dt[,A_2012]), 
                       B=c(dt[,B_2011], dt[,B_2012]), 
                       C=c(dt[,C_2011], dt[,C_2012]))
> dtLong
   id year            A          B          C
1:  1 2011 -0.826213405 -2.3201355 -0.1344309
2:  2 2011  0.935043336 -0.7256130 …
Run Code Online (Sandbox Code Playgroud)

r reshape reshape2 data.table

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

基于switch语句初始化具有不同类型的变量

我正在开发一些功能Rcpp上进行操作big.matrix,从对象bigmemory包.这些对象Rcpp作为SEXP对象传递给对象,然后我必须将其转换为对象XPtr<BigMatrix>,然后转换为MatrixAccessor对象以访问矩阵的元素.

例如,如果我想实现一个得到对角线的函数:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::depends(BH, bigmemory)
#include <bigmemory/MatrixAccessor.hpp>

#include <numeric>

// [[Rcpp::export]]
NumericVector GetDiag(SEXP pmat) {
  XPtr<BigMatrix> xpMat(pMat); // allows you to access attributes
  MatrixAccessor<double> mat(*xpMat); // allows you to access matrix elements

  NumericVector diag(xpMat->nrow()); // Assume matrix is square
  for (int i = 0; i < xpMat->nrow(); i++) { 
    diag[i] = mat[i][i];
  }
  return diag;
}
Run Code Online (Sandbox Code Playgroud)

如果big.matrixR中的对象充满双打,则此功能可以很好地工作.

但是,如果在整数矩阵(例如diag(as.big.matrix(matrix(1:9, …

rcpp

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

gnu parallel:将每个作业输出到不同的文件

我试图awk使用该parallel命令作为shell脚本处理所有文本文件,但无法将其输出到另一个文件

如果我尝试:

seq 10 | parallel awk \''{ if ( $5 > 0.4 ) print $2}'\' file{}.txt > file{}.out
Run Code Online (Sandbox Code Playgroud)

它输出到文件file{}.out,而不是file1.out,file2.out等等.

教程和手册页也建议我可以使用--files,但它只是打印到stdout:

seq 10 | parallel awk \''{ if ( $5 > 0.4 ) print $2}'\' file{}.txt --files file{}.out
Run Code Online (Sandbox Code Playgroud)

bash gnu-parallel

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

交互式R中的异步命令调度

我想知道是否可以使用其中一个并行处理后端(可能不是)R.我尝试了一些谷歌搜索,没有任何结果.

我目前遇到的一般问题:

  • 我有一些大型物体需要大约半小时到达 load
  • 我想在数据上生成一系列图表(需要几分钟).
  • 我想在发生这种情况时继续对数据做其他事情(尽管不改变基础数据!)

理想情况下,我可以从交互式会话中调度命令,而不必等待它返回(所以我可以在等待渲染时继续做其他事情).这是可能的,还是这是一厢情愿的想法?

parallel-processing asynchronous r

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

在非平凡的标准上有效地合并两个数据帧

昨晚回答这个问题,我花了一个小时的时间试图找到一个没有data.frame在for循环中成长的解决方案,没有任何成功,所以我很好奇是否有更好的方法来解决这个问题.

问题的一般情况归结为:

  • 合二 data.frames
  • 两者中的条目data.frame可以在另一个中具有0个或更多匹配条目.
  • 我们只关心两者之间有一个或多个匹配项的条目.
  • 匹配函数很复杂,涉及两个data.frames 中的多个列

对于一个具体的例子,我将使用类似的数据来链接问题:

genes <- data.frame(gene       = letters[1:5], 
                    chromosome = c(2,1,2,1,3),
                    start      = c(100, 100, 500, 350, 321),
                    end        = c(200, 200, 600, 400, 567))
markers <- data.frame(marker = 1:10,
                   chromosome = c(1, 1, 2, 2, 1, 3, 4, 3, 1, 2),
                   position   = c(105, 300, 96, 206, 150, 400, 25, 300, 120, 700))
Run Code Online (Sandbox Code Playgroud)

我们的复杂匹配功能:

# matching criteria, applies to a single entry from each data.frame …
Run Code Online (Sandbox Code Playgroud)

merge r data.table

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

没有名为'BiocInstaller'的包

每当我尝试安装新软件包时,我都会收到此错误:

source("http://bioconductor.org/biocLite.R")  
Warning in install.packages :  
  package ‘BiocInstaller’ is not available (for R version 3.0.2 RC)  
Installing package into ‘/home/hd-master/R/x86_64-unknown-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)  
trying URL 'http://www.bioconductor.org/packages/2.13/bioc/src/contrib/BiocInstaller_1.12.0.tar.gz'  
Content type 'application/x-gzip' length 13509 bytes (13 Kb)  
opened URL  
==================================================  
downloaded 13 Kb  

Error in library(BiocInstaller) :   
  there is no package called 'BiocInstaller'  
Execution halted  
Run Code Online (Sandbox Code Playgroud)

r bioconductor rstudio

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

R:locpoly错误地返回NaN

运行以下代码给我一个NaN:

library(KernSmooth) 
x <- c(5.84155992364115, 1.55292112974119, 0.0349665318792623, 3.93053647398094,
       3.42790577684633, 2.9715553006801, 0.837108410045353, 2.872476865277, 
       3.89232548092257, 0.206399650539628) 
y <- c(0.141415317472329, 1.34799648955049, 0.0297566221758204, 
       -0.966736679061812, 0.246306732122746, 0.557982376254723, 
       0.740542828791083, 0.162336127802977, -0.428804158514744, 
       0.691280978689863) 

locpoly(x, y, bandwidth = 0.4821232, gridsize = 12, degree = 1)[['y']]
Run Code Online (Sandbox Code Playgroud)

我明白了

[1]  0.3030137  0.6456624  0.9530586  1.1121106  0.8120947  0.4441603
[7]  0.1425592 -0.3600028 -0.7840411 -1.0517612 -1.2690134        NaN
Run Code Online (Sandbox Code Playgroud)

在另一台计算机上,我得到相同的,除了我-0.7270521而不是NaN.我猜大多数人也会得到这个.所以问题是如何修复破碎的系统?这与我的LAPACK或LIBBLAS有关吗?

请注意,上面提到的两台计算机都使用Ubuntu.给出了NaN使用Ubuntu 13.10的那个,给出一个数字的是12.04.

编辑:

我的新怀疑是它是一个浮点计算问题:局部多项式回归只是一个加权线性回归,其中权重越大,点越远离评估点,在这种情况下为5.84.应该注意带宽很小,所以首先想到的是带宽内没有点.然而,locpoly使用高斯核,因此所有点都具有严格的正权重.我的猜测是权重很小,但是舍入或浮点计算可能是个问题.我不知道如何解决这个问题.

ubuntu r blas lapack

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