小编sta*_*ant的帖子

这在数据步骤中意味着什么?

在这个数据步骤中,我不明白做if last.y什么......你能告诉我吗?

data stop2;
    set stop2;
    by x y z t;

if last.y; /*WHAT DOES THIS DO ??*/

    if t ne 999999 then
        t=t+1;
    else do;
            t=0;
        z=z+1;
    end;
run;
Run Code Online (Sandbox Code Playgroud)

sas datastep

2
推荐指数
1
解决办法
559
查看次数

当我更改缓冲区时,为什么我的vim colorscheme会改变

我在某些文件类型上有一些首选的colorscheme,但是当我打开另一个文件(具有不同colorscheme的不同文件类型)并返回到前一个文件时,新的colorscheme仍然存在.

我在我的Gvimrc中有这个(使用gvim)

autocmd WinEnter,FileType * colorscheme default
autocmd WinEnter,FileType c,cpp colorscheme darkblue
autocmd WinEnter,FileType R,r colorscheme desert
Run Code Online (Sandbox Code Playgroud)

当我浏览缓冲区时,如何修改以确保colorscheme根据文件类型保留?

编辑:添加以下没有修复

autocmd BufEnter,BufNew,FileType c,cpp colorscheme darkblue
autocmd BufEnter,BufNew,FileType R,r colorscheme desert
Run Code Online (Sandbox Code Playgroud)

vim color-scheme

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

我怎样才能让这个分离功能工作

我希望能够使用该deparse功能,如果我这样做

g = function(x) deparse(substitute(x))
Run Code Online (Sandbox Code Playgroud)

那么就可以了

R) g(test)
[1] "test"
Run Code Online (Sandbox Code Playgroud)

但如果我想测试 的参数是否gcharacter

h = function(x) {if(is.character(x)){return(x)}; deparse(substitute(x))}
R) h(test)
Error in h(test) : object 'test' not found
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?我可以修复它吗?

编辑:从新复制R --vanilla

R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United Kingdom.1252
[2] LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
1536
查看次数

如何正确转换时区

我正在使用fasttime包来实现其fastPOSIXct功能,可以非常有效地读取字符日期时间.我的问题是它只能读取GMT中表达的字符日期时间.

R) fastPOSIXct("2010-03-15 12:37:17.223",tz="GMT") #very fast
[1] "2010-03-15 12:31:16.223 GMT"
R) as.POSIXct("2010-03-15 12:37:17.223",tz="GMT") #very slow
[1] "2010-03-15 12:31:16.223 GMT"
Run Code Online (Sandbox Code Playgroud)

现在,假设我有一个日期时间以"America/Montral"时区表示的文件,计划是加载它们(隐含地假装它们在GMT中)并随后修改时区属性而不更改基础值.

如果我使用这个功能,请参考另一篇文章:

forceTZ = function(x,tz){   
    return(as.POSIXct(as.numeric(x), origin=as.POSIXct("1970-01-01",tz=tz), tz=tz))
}
Run Code Online (Sandbox Code Playgroud)

我看到一个bug ...

R) forceTZ(as.POSIXct("2010-03-15 12:37:17.223",tz="GMT"),"America/Montreal")
    [1] "2010-03-15 13:37:17.223 EDT"
Run Code Online (Sandbox Code Playgroud)

...因为我希望它是

R) as.POSIXct("2010-03-15 12:37:17.223",format="%Y-%m-%d %H:%M:%OS",tz="America/Montreal")
    [1] "2010-03-15 12:37:17.223 EDT"
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?

编辑:我知道lubridate::force_tz但它太慢了(不再使用fasttime::fastPOSIXct了点)

r posixct

2
推荐指数
1
解决办法
970
查看次数

如何创建一个data.table,其中一行基于另一个data.table填充NA

假设我有以下内容data.table(但将其视为包含大量具有动态更改名称的列的表)

DT <- data.table(a=rep(1L,3),b=rep(1.32,3),d=rep("qwe",3))
DT
   a    b   d
1: 1 1.32 qwe
2: 1 1.32 qwe
3: 1 1.32 qwe
Run Code Online (Sandbox Code Playgroud)

现在说我想创建一个NAs我可以rbindlist使用DT的行.

第一次尝试(它不工作)

DT1 <- DT[1][,colnames(DT):=NA]
DT1
    a  b  d
1: NA NA NA
rbindlist(list(DT1,DT))
      a    b  d
1:   NA   NA NA
2: TRUE TRUE NA
3: TRUE TRUE NA
4: TRUE TRUE NA
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为DT1:=NA调用时会进行转换(看起来像是plonking,因为如果你提供一个完整的列,当:=RHS类型将覆盖LHS ......)

那么问题是,如何提取一行a data.table并用NA填充它或创建一个data.table填充NA,其具有与另一个相同的列名和列类型

r data.table

2
推荐指数
1
解决办法
1261
查看次数

如何绘制连续x轴的条形图/条形图

我想绘制一个,barplot但我在x轴上有日期,我希望这些日期正确间隔(因为它是非绝对的)

set.seed(1)
m = matrix(abs(rnorm(6)),3,2)
rownames(m) = as.Date(c('2011-01-01','2011-01-03','2011-01-10'))
barplot(t(m),beside=T,col=c('red','blue'),las=2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在这个例子中,我希望14984在右边偏移.我宁愿一个graphics解决方案,但ggplot2也很好

r bar-chart ggplot2

2
推荐指数
1
解决办法
7775
查看次数

如何从2个向量中列出对

说我有

X = seq(1,10,1)
X0 = c(-Inf,X)
X1 = c(X,Inf)
Run Code Online (Sandbox Code Playgroud)

我怎样才能列出对 (-Inf,1);(1,2);...;(10,+Inf)

这很接近,但并不完全

R) test = mapply(c,c(-Inf,thresh),c(thresh,Inf))
R) test
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,] -Inf    5   10   15   20   25   30   35   40    45    50    55    60    65    70    75    80    85    90    95
[2,]    5   10   15   20   25   30   35   40   45    50    55    60    65    70    75    80    85    90    95 …
Run Code Online (Sandbox Code Playgroud)

r list vector

2
推荐指数
1
解决办法
5813
查看次数

如何将不同单位的向量解析为毫秒?

我有一个包含自纪元以来的时间的文件.问题是那些时间写得像[0-9]{3}[ms|s|m]

times = c('001ms','023ms','011s','923s','001m','012m','111m')
Run Code Online (Sandbox Code Playgroud)

我希望能够将其转换为"毫秒数"(或数字或秒或分钟......).我会得到类似的东西:

c(1, 23, 11000, 923000, ...)
Run Code Online (Sandbox Code Playgroud)

是否有一些功能可以让我有效地解析这些时间?

r

2
推荐指数
1
解决办法
77
查看次数

在尝试构建vim时找不到ncurses

我最近升级到Fedora 23之后试图在我的用户目录中构建vim

我有ncurses和ncurses-devel

[root@statquant-laptop lib]# dnf install ncurses
Last metadata expiration check performed 1:09:48 ago on Sat Jan  9 10:33:06 2016.
Package ncurses-5.9-21.20150214.fc23.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!

[root@statquant-laptop lib]# dnf install ncurses-devel
Last metadata expiration check performed 1:09:58 ago on Sat Jan  9 10:33:06 2016.
Package ncurses-devel-5.9-21.20150214.fc23.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!
Run Code Online (Sandbox Code Playgroud)

这是证明:

[root@statquant-laptop lib]# ll /usr/lib/libncurs*
lrwxrwxrwx. 1 root root     17 Jun 17  2015 /usr/lib/libncurses.so.5 -> libncurses.so.5.9
lrwxrwxrwx. …
Run Code Online (Sandbox Code Playgroud)

vim build ncurses configure fedora-23

2
推荐指数
1
解决办法
5381
查看次数

如何从 unix 命令行中提取 R major.minor 版本?

在 linux 上,我需要能够将 R 版本分配给一个变量,通常我使用 R 3.4.1 as per R.Version()

3.4在这种情况下我怎么能得到,即类似的东西 export RVERSION=$(some-command)

bash awk r version

2
推荐指数
1
解决办法
170
查看次数