我在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]
如果有多个软件包经验的人会就可用性和可扩展性方面的可用时间/日期类别进行比较,那将非常感激.
一些兴趣点(按随机顺序):
lubridate谢谢.
据说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接口和所有序列函数不返回相同的类的对象作为输入对象?
在汇总缓冲区中,如何在两种情况下使gnus读取已经读过文章:
而在一个线程中已经阅读了一些文章(因此不可见).我想完成线程与所有文章(不仅是父母!)读或未读.
获取最后N个不可见的阅读文章.
万分感谢!
我想重新定义现有函数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.这是继续进行的唯一途径吗?]
我对这个表达感到困惑
#[nil "\300\207"
[nil]
1]
Run Code Online (Sandbox Code Playgroud)
作为一个价值skeleton-pair-filter-function.
这是在elisp中编写函数的另一种方法吗?或者一般的lisp?
谢谢.
R中是否有内置功能可以对字符向量进行排序?sort并order忽略这种情况:
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) 如何在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) 伙计们,这让我发疯了.
这按预期工作:
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把它放在表达的原始形式上?
我想在现有情节的一个小区域中拟合整个格子图.
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)
有没有办法将晶格图限制在设备上的预定义区域,就像上面的例子一样?
什么是惯用语subset:
user=> (subset [:a :b] {:a 1 :b 2 :c 3})
{:a 1 :b 2}
Run Code Online (Sandbox Code Playgroud)
谢谢.
如何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)
]