小编Zac*_*ach的帖子

从源文件安装R包

我试图从源代码安装r包"segue".不幸的是,目前没有提供tarball,我不知道如何从二进制文件编译和安装包.我在Mac上,如果有帮助的话.

谢谢!

packages r

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

寻找最近一个星期一的公式

我讨厌星期一.不是吗?

我正在尝试编写一个公式,显示最近一个星期一的日期.例如,今天是2011年7月6日,最近一个星期一是2011年7月4日.

我尝试过=TODAY()-WEEKDAY(TODAY())+2,但这个公式讨厌星期天,如果今天是2011年7月3日,那就失败了

excel datetime

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

列查询包含&的SQL查询

我有一个SQL Server 2008数据库,其中一列名为ES&D.我想基于该列进行查询,如下所示:

SELECT ES&D FROM myDB
Run Code Online (Sandbox Code Playgroud)

或这个:

SELECT * FROM myDB WHERE ES&D=1
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误(我正在使用SQL Server Management Studio编写查询):

消息207,级别16,状态1,行1
无效的列名称"ES".
消息207,级别16,状态1,行1
无效的列名称"D".

有没有办法逃避&列名称,以便SQL按字面意思对待它?

sql sql-server ssms sql-server-2008

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

将visual foxpro dbf表批量转换为csv

我有大量的视觉foxpro dbf文件,我想转换为csv.(如果您愿意,可以在此处下载部分数据.点击2011年的交易数据链接,准备等待很长时间......)

我可以使用DBF View Plus(一个非常棒的免费软件实用程序)打开每个表,但是将它们导出到csv每个文件需要几个小时,我有几十个文件可以使用.

是否有像DBF View plus这样的程序可以让我设置一批dbf-to-csv转换来在一夜之间运行?

/编辑:或者,是否有一种将.dbf文件直接导入SQL Server 2008的好方法?它们都应该进入1个表,因为每个文件只是来自同一个表的记录的子集,并且应该具有所有相同的列名.

csv foxpro etl dbf visual-foxpro

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

N处平均精度的更快R实现

优秀的Metrics包提供了计算平均精度的功能: apk.

问题是,它基于for循环,而且速度很慢:

require('Metrics')
require('rbenchmark')
actual <- 1:20000
predicted <- c(1:20, 200:600, 900:1522, 14000:32955)
benchmark(replications=10,
          apk(5000, actual, predicted),
          columns= c("test", "replications", "elapsed", "relative"))

                          test replications elapsed relative
1 apk(5000, actual, predicted)           10   53.68        1
Run Code Online (Sandbox Code Playgroud)

我对如何对这个函数进行矢量化感到困惑,但我想知道是否有更好的方法在R中实现它.

information-retrieval r average-precision

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

R:计算2个数字时间之间经过的时间,例如944和1733是469分钟

我正在尝试在R中编写一个优雅的函数来计算两个时间戳之间的经过时间,这两个时间戳存储为格式为hmm或hhmm的整数.我想将经过的时间作为整数分钟返回.

到目前为止,这是我的解决方案,可能会大大改进:

#Treatment of varous length inputs:
#1 digit  = m
#2 digits = mm
#3 digits = hmm
#4 digits = hhmm
#5+ digits = failure

elapsedtime <- function(S,E) {
    S<-c(as.character(S))
    E<-c(as.character(E))

    if (length(S)!=length(E)) {
        stop("Invalid input")
    }

    for (i in seq(1:length(S))) {
        if (nchar(S[i])>4) {S[i]<-NA}
        if (nchar(E[i])>4) {E[i]<-NA}

        while (nchar(S[i])<4) {
            S[i]<-paste('0',S[i],sep='')
        }

        while (nchar(E[i])<4) {
            E[i]<-paste('0',E[i],sep='')
        }
        S[i]<-as.character(as.numeric(substr(S[i],1,2))*60+as.numeric(substr(S[i],3,4)))
        E[i]<-as.character(as.numeric(substr(E[i],1,2))*60+as.numeric(substr(E[i],3,4)))

    }
    S<-as.numeric(S)
    E<-as.numeric(E)

    return(E-S)
}
elapsedtime(944,1733) 
elapsedtime(44,33)
elapsedtime(44,133)
elapsedtime(c(944,44),c(1733,33))
elapsedtime(c(44,44),c(33,133))
elapsedtime(944,17335)
elapsedtime(c(944,945),c(1733,17335))
elapsedtime(c(944,945),c(1733,17335,34))
Run Code Online (Sandbox Code Playgroud)

我不太喜欢处理1位和2位数的情况,但我需要能够处理3位或4位数的输入.我在很多日期都运行这个,快速做3/4位数比慢慢做1,2,3或4位更好.

/ edit:更改代码以便在时间向量上正常工作

time datetime r

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

= MATL()等效于多维范围

我有一张excel表,其中单元格A1-C20 = =INT(RAND()*10).这是我的数据范围.单元格E1 = 1,E2 = 2,E3 = 3等.这些是我想要找到的值.我设置单元格F1 = =MATCH(E1,A:C,0),F2 = =MATCH(E1,A:C,0)等.

但是,所有MATCH函数都返回#N/A,因为输入范围是多维的.如何测试给定值(1,2,3,4等)是否存在于多维范围(A1-C20)?

/ edit: 这个功能有效,但不仅仅是我需要的.有没有办法让它返回TRUE或FALSE,具体取决于查找值是否在范围内?

Function OzgridLookup(Find_Val As Variant, Occurrence As Long, Table_Range As Range, _
 Offset_Cols As Long, Optional Column_Lookin As Long, Optional Row_Offset As Long) As Variant

Dim lLoop As Long
Dim FoundCell As Range

    If Column_Lookin = 0 Then 'No column # specified
        With Table_Range
            'Top left cell has Find_Val & Occurrence is 1
            If Table_Range.Cells(1, 1) …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

从ns对象中提取结

library(splines)
x <- runif(100000)
spline <- ns(x, df=5)
Run Code Online (Sandbox Code Playgroud)

如何判断此脊椎对象中的结?

> spline ['knots']
[1] NA
Run Code Online (Sandbox Code Playgroud)

str 让我接近我需要的东西,但我希望能够提取样条曲线的矢量,格式化它,并在Sweave文档中打印它.

> str(sp)
 ns [1:117542, 1:5] 0.527 0.474 0.455 0.472 0.498 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:5] "1" "2" "3" "4" ...
 - attr(*, "degree")= num 3
 - attr(*, "knots")= Named num [1:4] 1.03 1.55 1.99 2.7
  ..- attr(*, "names")= chr [1:4] "20%" "40%" "60%" "80%"
 - attr(*, "Boundary.knots")= num [1:2] 0.0214 4.9999
 - attr(*, "intercept")= logi FALSE …
Run Code Online (Sandbox Code Playgroud)

regression r splines

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

从data.frame名称中删除空格

我有一个数据帧我用拉成R 的SQLQuery.我想从data.frame的名字中删除所有空格和特殊字符,但是sqlQuery没有strip.white=TRUE选项,所以我想用正则表达式来做这个.

这适用于空白:

myNames <- c("Sample Selection Reason", "My ID")
myNames <- gsub('\\s+', '.', myNames )
Run Code Online (Sandbox Code Playgroud)

关于特殊字符我该怎么办?

regex r

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

多数类的颜色直方图箱

我已经为每个栏中的大多数类编写了一个有用的函数来着色直方图条:

color_hist <- function(x, cats, ...){
  hist <- hist(x, plot=FALSE, ...)
  cuts <- cut(x, breaks=hist$breaks)

  color = apply(table(cuts, cats), 1, which.max)

  hist(x, col=color,...)
}

color_hist(iris[,4], iris[,5])
Run Code Online (Sandbox Code Playgroud)

颜色组织

我想尽可能地复制行为hist(),但我无法弄清楚如何将标题和x标签从原始直方图传递到彩色化的直方图:

HIST2

我希望新的直方图具有与旧直方图相同的默认标题/ xlabels,我还想通过任何其他用户指定的参数.任何人都可以帮我解决这个问题,或以其他任何方式改进这个功能?

(如果我可以让颜色相互融合,也会很酷,这取决于班级百分比......)

r histogram

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