小编Vit*_*hKa的帖子

哪个R时间/日期类和包使用?

我在R中有一个有限的时间序列曝光.所以,我想知道哪个时间/日期类(和相关的包)最适合开始.

CRAN任务视图中提供的众多软件包中,我到目前为止都支持这种方式timeDate,这是一种面向S4的方式,并且对依赖于位置的特性(例如假期和夏令时)提供了很好的支持.

社区显然赞成这个zoo方案.chron也很受欢迎.
[编辑:这是一个包含时间/日期实现的列表lubridate: POSIXct,OSIXlt,Date,chron,yearmon,yearqtr,zoo,zooreg,timeDate,xts,its,ti,jul,timeSeries,fts.另外lubridate本身具有方便的时间类duration,period以及interval]

如果有多个软件包经验的人会就可用性和可扩展性方面的可用时间/日期类别进行比较,那将非常感激.

一些兴趣点(按随机顺序):

  • 国际化(假期,时区等)
  • 随时可用的统计建模程序
  • 随时可用的可视化工具
  • 便于使用
  • 与内置日期/时间序列类的兼容性(POSIX,ts)
  • 可扩展性(S4是可取的)
  • 最好用 lubridate

谢谢.

datetime r date time-series

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

为什么clojure集合不直接实现ISeq接口?

据说clojure中的每个集合都是"sequable",但只有list和cons实际上是seqs:

user> (seq? {:a 1 :b 2})
false
user> (seq? [1 2 3])
false    
Run Code Online (Sandbox Code Playgroud)

所有其他seq函数首先将集合转换为序列,然后才对其进行操作.

user> (class (rest {:a 1 :b 2}))
clojure.lang.PersistentArrayMap$Seq
Run Code Online (Sandbox Code Playgroud)

我做不到这样的事情:

user> (:b (rest {:a 1 :b 2}))
nil
user> (:b (filter #(-> % val (= 1)) {:a 1 :b 1 :c 2}))
nil
Run Code Online (Sandbox Code Playgroud)

并且必须强制回到具体的数据类型.这对我来说看起来很糟糕,但很可能我还没有得到它.

那么,为什么Clojure的收藏都不能直接实现ISEQ接口和所有序列函数不返回相同的类的对象作为输入对象?

clojure sequence seq

18
推荐指数
2
解决办法
2325
查看次数

如何将已经读过的文章提取到gnus中的摘要缓冲区?

在汇总缓冲区中,如何在两种情况下使gnus读取已经读过文章:

  1. 而在一个线程中已经阅读了一些文章(因此不可见).我想完成线程与所有文章(不仅是父母!)读或未读.

  2. 获取最后N个不可见的阅读文章.

万分感谢!

emacs gnus

16
推荐指数
1
解决办法
2046
查看次数

elisp中的缓冲区本地函数

我想重新定义现有函数foo,但仅限于特定缓冲区.

(defun foo ()
  (message "Not done:("))
Run Code Online (Sandbox Code Playgroud)

我正在跳这个会做:

(make-local-variable 'foo)
(fset 'foo #'(lambda () (message "Done!")))
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.有任何想法吗?

[编辑:或者,因为函数绑定到一个键,只需修改当前缓冲区的绑定就足够了.但我不明白该怎么做.本地键映射由主模式中的所有缓冲区共享.修改它会修改具有此主要模式的所有缓冲区中的绑定.

我能想到的唯一丑陋的解决方案是为整个缓冲区设置一个keymap text-property.这是继续进行的唯一途径吗?]

emacs buffer elisp function local

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

#[...]在emacs-lisp中意味着什么?

我对这个表达感到困惑

#[nil "\300\207"
      [nil]
      1]
Run Code Online (Sandbox Code Playgroud)

作为一个价值skeleton-pair-filter-function.

这是在elisp中编写函数的另一种方法吗?或者一般的lisp?

谢谢.

lisp emacs elisp

10
推荐指数
1
解决办法
475
查看次数

在排序字符串时不要忽略大小写

R中是否有内置功能可以对字符向量进行排序?sortorder忽略这种情况:

tv <- c("a", "A", "ab", "B")
sort(tv)
## [1] "a"  "A"  "ab" "B" 
Run Code Online (Sandbox Code Playgroud)

到目前为止这是我的解决方案:

CAPS <- grep("^[A-Z]", tv)
c(sort(tv[CAPS]), sort(tv[-CAPS]))
## [1] "A"  "B"  "a"  "ab"
Run Code Online (Sandbox Code Playgroud)

sorting r vector character

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

创建"缺少对象"(又名:"空符号","空对象")/正式操作所需/

如何在R中创建"空对象"?[编辑:我不知道如何正确地称这个"东西"所以我称之为"空对象",其他人:"空符号","零长度符号","缺少对象"也可能被使用]

[编辑2:最后我倾向于在"缺失的符号对象"上找到"事物"的名称.似乎J.Chambers在他2008年的书中使用了这个术语,请参阅@ mbq答案的评论.根据钱伯斯的说法,"缺失符号"的内容为零长度字符串.因此,as.symbol("")应该创建这样一个对象,它在当前版本的R(2.11.1)中不会

我能找到的最简单的方法是

x <- alist(a=)$a
Run Code Online (Sandbox Code Playgroud)

[澄清]

请注意,"空对象"不是NULL对象或长度为0的向量.上面示例中的"空对象"x可用于函数的形式操作,这是我需要的.

这是一个例子:

> al <- alist(a = 323, b = , c = 434)  
> al  
$a  
[1] 323  
$b  
$c  
[1] 434  

>   
> al[["c"]] <- numeric()  
> al  
$a  
[1] 323  
$b  
$c                                   #not empty  
numeric(0)  

>   
> al[["c"]] <- list()              
> al  
$a  
[1] 323  
$b  
$c                                   #not empty  
list()  

>   
>   
> al[["c"]] <- NULL                    #object removed  
> al  
$a  
[1] 323  
$b  


>   
> al[["c"]] <- alist(a …
Run Code Online (Sandbox Code Playgroud)

r

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

R中"替代"的令人困惑的行为

伙计们,这让我发疯了.

这按预期工作:

eobj <- substitute(obj <- list(a, b), list(a = 32, b = 33))
eval(eobj)
obj
[[1]]
[1] 32

[[2]]
[1] 33
Run Code Online (Sandbox Code Playgroud)

现在,试试这个:

efun <- substitute(fun <- function() a+ b, list(a = 32, b = 33))
str(efun)
# language fun <- function() 32 + 33  
eval(efun)
fun
# function() a+ b
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?究竟是怎么eval把它放在表达的原始形式上?

eval r function substitution quote

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

限制格子图到视口?

我想在现有情节的一个小区域中拟合整个格子图.

xyplot(decrease ~ treatment, OrchardSprays, groups = rowpos, type = "a")
pushViewport(viewport(.2, .7, .2, .2))
grid.rect(gp=gpar(fill="white"))
Run Code Online (Sandbox Code Playgroud)

给我这个:

在此输入图像描述

因此视口被推动.但是当再次调用晶格函数时,它会使用整个器件,就像调用grid.newpage():

xyplot(decrease ~ treatment, OrchardSprays, groups = rowpos, type = "a")
Run Code Online (Sandbox Code Playgroud)

有没有办法将晶格图限制在设备上的预定义区域,就像上面的例子一样?

plot r viewport lattice r-grid

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

如何在clojure中对地图进行子集化?

什么是惯用语subset:

user=> (subset [:a :b] {:a 1 :b 2 :c 3})
{:a 1 :b 2}
Run Code Online (Sandbox Code Playgroud)

谢谢.

clojure

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

grep在字符串的开头是固定= T在R?

如何grep with fixed=T,但只在字符串的开头?

grep("a.", c("a.b", "cac", "sss", "ca.f"), fixed = T)
# 1 4
Run Code Online (Sandbox Code Playgroud)

我想只获得第一次出现.[编辑:要匹配的字符串事先不知道,可以是任何东西."一个." 只是为了举例]

谢谢.

[编辑:我现在解决了这个问题,但其他任何想法都非常受欢迎.我将接受任何替代解决方案作为答案.

s <- "a."
res <- grep(s, c("a.b", "cac", "sss", "ca.f"), fixed = T, value = T)
res[substring(res, 1, nchar(s)) == s]
Run Code Online (Sandbox Code Playgroud)

]

regex grep r

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