小编Ale*_*lex的帖子

面板数据的双集群标准错误

我在R(时间和横截面)中有一个面板数据集,并且想要计算由两个维度聚类的标准误差,因为我的残差是双向相关的.谷歌搜索我发现http://thetarzan.wordpress.com/2011/06/11/clustered-standard-errors-in-r/提供了执行此操作的功能.它似乎有点特别,所以我想知道是否有一个已经过测试的包并且这样做了吗?

我知道sandwichHAC标准错误,但它没有做双聚类(即沿着两个维度).

regression r standard-error panel-data plm

8
推荐指数
4
解决办法
6026
查看次数

缺失值时使用rollmean(NA)

我有一个数据集,里面有几个NA.我采取滚动平均值,并期望在没有NA窗口,滚动平均值应该产生一个号码,而不要NA,但是,rollmeanrzoo似乎并没有做到这一点.例:

require(zoo)
z = zoo(cbind(a=0:10, b=c(NA,10:1), c=sample(1:11,11)), 1:11) 
rollmeanr(z, k=3, fill=NA)
    a  b        c
1  NA NA       NA
2  NA NA       NA
3   1 NA 3.333333
4   2 NA 4.666667
5   3 NA 4.000000
6   4 NA 6.333333
7   5 NA 7.000000
8   6 NA 9.333333
9   7 NA 8.333333
10  8 NA 8.666667
11  9 NA 5.666667

rollapply(z, width=3, FUN=mean, by=1, by.column=TRUE, fill=NA, align="right")
    a  b        c
1  NA …
Run Code Online (Sandbox Code Playgroud)

r zoo xts

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

与来自R的SAS数据集通信

我有一堆SAS格式的数据集.我想避免使用SAS,因为我认为R为我提供了足够多的功能.因此,是否有一个包允许我与R的SAS数据集进行交互?我安装了SAS软件,但我想避免使用多种语言编写代码.

r sas

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

在R中使用带有多个线程的data.table

有没有办法data.table在R中使用多个线程进行计算?例如,假设我有以下内容data.table:

dtb <- data.table(id=rep(1:10000, 1000), x=1:1e7)
setkey(dtb, id)
f <- function(m) { #some really complicated function }
res <- dtb[,f(x), by=id]
Run Code Online (Sandbox Code Playgroud)

如果f需要一段时间来计算,有没有办法让R多线程?那么在f快速的情况下,多线程会帮助还是大部分时间将data.table事情分成几组?

multithreading r apply data.table

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

将字符串日期转换为所有日期的R Date FAST

这已被问过几次,但没有明确的答案:我想将一个形式为"YYYY-mm-dd"的R字符串转换成一个Date.该as.Date功能是非常缓慢的. 将字符转换为日期*快速*在R中提供使用的解决方案fasttime,适用于1970年以后的日期.我的问题是我有从1900年开始的日期,我需要转换,其中大约有1亿.我必须经常这样做,所以速度很重要.还有其他解决方案吗?

posix r date

7
推荐指数
5
解决办法
5534
查看次数

快速加入data.table(潜在错误,报告前检查)

这可能是一个错误.在这种情况下,我将删除此问题并报告为错误.我希望有人看一看,确保我没有做错事,所以我不浪费开发时间.

test = data.table(mo=1:100, b=100:1, key=c("mo", "b"))
mo = 1
test[J(mo)]
Run Code Online (Sandbox Code Playgroud)

这将返回整个testdata.table而不是返回的正确结果

test[J(1)]
Run Code Online (Sandbox Code Playgroud)

我相信错误可能来自与test正在加入的表具有相同的列名,mo.有没有其他人得到同样的问题?

merge r data.table

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

落后于data.table R.

目前,我有一个效用函数lags的东西data.table按组.功能很简单:

panel_lag <- function(var, k) {
  if (k > 0) {
    # Bring past values forward k times
    return(c(rep(NA, k), head(var, -k)))
  } else {
    # Bring future values backward
    return(c(tail(var, k), rep(NA, -k)))
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以从data.table:

x = data.table(a=1:10, 
               dte=sample(seq.Date(from=as.Date("2012-01-20"),
                                   to=as.Date("2012-01-30"), by=1),
                          10))
x[, L1_a:=panel_lag(a, 1)]  # This won't work correctly as `x` isn't keyed by date
setkey(x, dte)
x[, L1_a:=panel_lag(a, 1)]  # This will
Run Code Online (Sandbox Code Playgroud)

这要求我检查内部panel_lag是否x有键.有没有更好的方法来做滞后?这些表往往很大,所以它们应该真正被键入.我迟到setkey之前就做了.我想确保我不会忘记关键.所以我想知道人们是否有这样的标准方式.

r data.table

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

R中的多核和data.table

我试图使用multicore函数parallel,data.table我无法想出正确的方法来做到这一点.码:

require(multicore)
require(data.table)
dtb = data.table(a=1:10, b=1:2)
x = dtb[,parallel(a+1),by=b]

> x
   b   pid fd
1: 1 12243  3
2: 1 12243  6
3: 2 12247  4
4: 2 12247  8
Run Code Online (Sandbox Code Playgroud)

我想呼吁collect(),但这些不再是parallel对象.怎么应该这样做?

fork multicore r data.table

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

在R中交织两个data.frames

我想data.frame在R中交织两个.例如:

a = data.frame(x=1:5, y=5:1)
b = data.frame(x=2:6, y=4:0)
Run Code Online (Sandbox Code Playgroud)

我希望结果看起来像:

> x y
  1 5
  2 4
  2 4
  3 3
  3 3
  ...  
Run Code Online (Sandbox Code Playgroud)

由得到的cbind荷兰国际集团x[1]y[1],x[2]y[2]

最干净的方法是什么?现在我的解决方案涉及吐出到列表和合并.这很难看:

lst = lapply(1:length(x), function(i) cbind(x[i,], y[i,]))
res = do.call(rbind, lst)
Run Code Online (Sandbox Code Playgroud)

merge r dataframe rbind do.call

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

获取熊猫多索引的 dtype

如何在不打印出所有值的情况下在熊猫中找到dtypeaMultiIndex的值(df.index例如,如果您键入,就会发生这种情况)。我只想知道索引的名称及其类型。

前任:

df = pd.DataFrame({"a": np.arange(100000), "b": np.arange(100000)[::-1]}, index=pd.MultiIndex.from_arrays([np.arange(100000), np.arange(100000)[::-1]], names=["i1", "i2"]))
Run Code Online (Sandbox Code Playgroud)

正在做:

df.index
Run Code Online (Sandbox Code Playgroud)

实际打印需要一些时间,对于一个太长的大 df。

python python-3.x pandas

7
推荐指数
3
解决办法
5191
查看次数