小编Uwe*_*Uwe的帖子

在开发基于组件/环的应用程序时使用emacs/cider的正确方法是什么?

在开发基于组件/环的clojure应用程序时,emacs/cider的正确工作流程/使用途径是什么?

我觉得我可以"附加"到我正在运行的compojure/ring-process,更改其代码,读取/更改其数据,但我无法理解我该如何做到这一点?什么是正确的方法?

我所做的?

lein new compojure my-project
cd my-project
lein ring server-headless
Run Code Online (Sandbox Code Playgroud)

开发服务器现在运行.如果我更改项目中的文件,它们将自动重新加载.那很好.但我想要的是,我直接附加到流程并更改其功能,例如.

我明白这是可能的,但我无法理解.

emacs clojure compojure ring leiningen

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

有效地转换data.table中的日期列

我有一个包含许多列的大型数据集,其中包含两种不同格式的日期:

"1996-01-04" "1996-01-05" "1996-01-08" "1996-01-09" "1996-01-10" "1996-01-11"
Run Code Online (Sandbox Code Playgroud)

"02/01/1996" "03/01/1996" "04/01/1996" "05/01/1996" "08/01/1996" "09/01/1996"
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,class()都是"character".由于数据集有很多行(450万),我正在寻找一种有效的data.table转换方法.现在,我使用这个自建功能:

convert_to_date <- function(in_array){
  tmp <- try(as.Date(in_array, format = "%d/%m/%Y"),TRUE)
  if (all(!is.na(tmp)) & class(tmp) != "try-error"){
    return(tmp)
  } else{
    tmp2 <- try(as.Date(in_array),TRUE)
    if (all(!is.na(tmp2)) & class(tmp2) != "try-error"){
      return(tmp2)
    } else{
      return(in_array)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我用它转换我需要的列(data.table DF)

DF[,date:=convert_to_date(date)]
Run Code Online (Sandbox Code Playgroud)

然而,这仍然非常缓慢(每列接近45s).

有没有办法通过data.table方法优化这个?到目前为止,我还没有找到更好的方法,所以我会感谢任何提示.

PS:为了更好的可读性,我将该函数"外包"到第二个文件并在我的主程序中获取它.这是否会对R中的计算速度产生(负面)重大影响?

r date data.table

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

列列表上的多个函数,并使用data.table自动生成新列名

如何调整数据表操作,以便除了sum几个列的类别之外,它还会同时计算其他函数,例如count mean和(.N)并自动创建列名:"sum c1","sum c2"," sum c4","表示c1","表示c2","表示c4",最好也是1列"计数"?

我的旧解决方案是写出来

mean col1 = ....
mean col2 = ....
Run Code Online (Sandbox Code Playgroud)

等等,在data.table命令中

哪个有效,但我觉得非常低效,如果在新的应用程序版本中,计算依赖于用户在R Shiny应用程序中的选择来计算哪些列,它将不再用于预编码.

我已经通过一堆帖子和博客文章阅读了我的方式,但还没有弄清楚如何最好地做到这一点.我读到,在某些情况下,根据您使用的方法(.sdcols,get,lapply和/或=),大型数据表上的操作会变得非常慢.因此我添加了一个"相当大"的虚拟数据集

我的实际数据大约是100k行乘100列和1-100组.

library(data.table)
n = 100000
dt  = data.table(index=1:100000,
                 category = sample(letters[1:25], n, replace = T),
                 c1=rnorm(n,10000),
                 c2=rnorm(n,1000),
                 c3=rnorm(n,100),
                 c4 = rnorm(n,10)
)

# add more columns to test for big data tables 
lapply(c(paste('c', 5:100, sep ='')),
       function(addcol) dt[[addcol]] <<- rnorm(n,1000) )

# Simulate columns selected by shiny app user 

Colchoice <- c("c1", "c4")
FunChoice <- c(".N", …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

用Windows资源管理器的重命名事件挂钩我的程序

在用户重命名文件时,用任何语言有什么方法可以挂钩我的程序吗?

例如:用户重命名文件并按Enter(或单击)以确认重命名操作.在文件实际重命名之前,我的程序"侦听"此事件并弹出一条消息"你确定要将C:\ test\file.txt重命名为C:\ test\test.txt吗?".

我在想/希望这可以用C++,C#或.NET.但我没有任何线索在哪里寻找.

.net c# io file

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

当我将文本文件导入R时,我得到一个特殊字符附加到第一列的第一个值

有时当我将文本文件导入R时,我会在第一列的第一个值上附加字符"".有人知道为什么吗?

例如,文本文件的值为:

2011_21,3130
2010_51,4153
2011_16,3168
2010_20,3945
2012_38,2099
2012_17,2436
2010_40,2090
2011_2 ,1462
Run Code Online (Sandbox Code Playgroud)

在R中提出以下结果:

我在第一次阅读文件:

ts_data <- read.csv("yr_wk sales.csv", header=FALSE)
head(ts_data)
Run Code Online (Sandbox Code Playgroud)

这是返回的数据:

 V1   V2
1 2011_21 3130
2    2010_51 4153
3    2011_16 3168
4    2010_20 3945
5    2012_38 2099
6    2012_17 2436
Run Code Online (Sandbox Code Playgroud)

有什么好方法可以避免这个吗?谢谢你的帮助.

r

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

错误:加载插入符号包时找不到包"ggplot2"

当我安装插入符号.

install.packages("caret", dependencies=c("Depends", "Suggests"))
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
Run Code Online (Sandbox Code Playgroud)

LoadNamespace中的错误(i,c(lib.loc,.libPaths()),versionCheck = vI [[i]]):没有名为'digest'的
包错误:无法加载包'ggplot2'.

所以我通过使用此代码安装插入符来解决包摘要的问题,我又能得到什么:

install.packages("caret",  dep="TRUE")
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
Run Code Online (Sandbox Code Playgroud)

LoadNamespace中的错误(i,c(lib.loc,.libPaths()),versionCheck = vI [[i]]):没有名为'gtable'的
包错误:无法加载包'ggplot2'.

如何在没有这种错误的情况下成功安装插入符号,尤其是ggplot2错误!

我的R版本是R 3.2.2

r ggplot2 r-caret

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

OpenCV for Android:无法加载级联分类器错误

这是我第一次使用openCV库.我想用它来检测眼睛.我使用了FdActivity本教程中提供的代码:

http://romanhosek.cz/android-eye-detection-updated-for-opencv-2-4-6/

本教程使用OpenCV 2.4.6,但我在我的项目中下载了3.1版本.由于版本的不同,我更改了使用putText,矩形和圆形的行从imgproc而不是Core导入.这就是我改变的一切.我已将haarcascade_lefteye_2splits.xml和lbpcascade_frontalface.xml添加到res文件夹下的raw文件夹中.

运行应用程序时,我在logcat中收到此错误:

failed to load cascade classifier 
Run Code Online (Sandbox Code Playgroud)

如果mJavaDetector或mJavaDetectorEye为空,则仅从这些行生成:

 try {
                        // load cascade file from application resources
                        InputStream is = getResources().openRawResource(
                                R.raw.lbpcascade_frontalface);
                        File cascadeDir = getDir("cascade", Context.MODE_PRIVATE);
                        mCascadeFile = new File(cascadeDir,
                                "lbpcascade_frontalface.xml");
                        FileOutputStream os = new FileOutputStream(mCascadeFile);

                        byte[] buffer = new byte[4096];
                        int bytesRead;
                        while ((bytesRead = is.read(buffer)) != -1) {
                            os.write(buffer, 0, bytesRead);
                        }
                        is.close();
                        os.close();

                        // --------------------------------- load left eye
                        // classificator -----------------------------------
                        InputStream iser = getResources().openRawResource(
                                R.raw.haarcascade_lefteye_2splits);
                        File cascadeDirER = getDir("cascadeER",
                                Context.MODE_PRIVATE); …
Run Code Online (Sandbox Code Playgroud)

xml android opencv eye-detection haar-classifier

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

如何将summarise_each应用于除一个之外的所有列?

我正在分析一组包含许多列(几乎30列)的数据.我想基于两列对数据进行分组,并将sum和mean函数应用于除时间戳之外的所有列.如何在除时间戳之外的所有列上使用summarise_each?

这是我的草案代码,但显然不正确.另外它生成和错误,因为它不能将Sum应用于POSIXt数据类型(错误:'sum'未定义为"POSIXt"对象)

features <- dataset %>% 
  group_by(X, Y) %>% 
  summarise_each(funs(mean,sum)) %>%
  arrange(TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

如何将函数应用于data.table的子集,使用by并将所有列公开给函数?

data.table按组切片时,用于切片数据的变量在函数执行期间不在子集中.我用这个证明了这个debugonce.

library(data.table)
x <- data.table(a = rep(letters[1:4], each = 3), b = rep(c("a", "b"), each = 6), c = rnorm(12))

myfun <- function(y) paste(y$a, y$b, y$c, collapse = "")

> debugonce(myfun)
> x[, myfun(.SD), by = .(b, a)]
debugging in: myfun(.SD)
debug: paste(y$a, y$b, y$c, collapse = "")
Browse[2]> y
            c
1: -1.2662416
2:  0.9818497
3: -0.5395385
Run Code Online (Sandbox Code Playgroud)

我所追求的是split-sapply范例的功能,我将根据factor(s)切片data.frame并将该函数应用于所有列,也就是说,还包括用于切片的变量它(如下所示).

> debugonce(myfun)

> sapply(split(x, f = list(x$b, x$a)), FUN = myfun)
debugging in: FUN(X[[i]], ...)
debug: paste(y$a, y$b, …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

data.table 更新对非等价自联接的奇怪行为

在准备问题dplyr 或 data.table答案计算 R 中的时间序列聚合时,我注意到我确实得到了不同的结果,具体取决于表是就地更新还是作为新对象返回。此外,当我更改非等连接条件中的列顺序时,我确实得到了不同的结果。

目前,我对此没有解释,可能是由于我这边的重大误解或简单的编码错误。

请注意,这个问题特别要求解释观察到的data.table连接行为。如果您对潜在问题有其他解决方案,请随时发布原始问题的答案。

原始问题和工作答案

最初的问题是如何使用这些数据计算每位患者在住院前 365 天内的住院次数(包括实际住院次数):

library(data.table)   # version 1.10.4 (CRAN) or 1.10.5 (devel built 2017-08-19)
DT0 <- data.table(
  patient.id = c(1L, 2L, 1L, 1L, 2L, 2L, 2L),
  hospitalization.date = as.Date(c("2013/10/15", "2014/10/15", "2015/7/16", "2016/1/7", 
                                   "2015/12/20", "2015/12/25", "2016/2/10")))
setorder(DT0, patient.id, hospitalization.date)
DT0
Run Code Online (Sandbox Code Playgroud)
   patient.id hospitalization.date
1:          1           2013-10-15
2:          1           2015-07-16
3:          1           2016-01-07
4:          2           2014-10-15
5:          2           2015-12-20
6:          2           2015-12-25
7:          2 …
Run Code Online (Sandbox Code Playgroud)

join r self-join data.table

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