小编Dav*_*idR的帖子

列出匹配模式的文件,当bash globbing太多时

我想运行以下内容:

ls /path/to/files/pattern*
Run Code Online (Sandbox Code Playgroud)

得到

/path/to/files/pattern1 
/path/to/files/pattern2 
/path/to/files/pattern3
Run Code Online (Sandbox Code Playgroud)

但是,有太多文件匹配该目录中的模式,我得到了

bash: /bin/ls: Argument list too long
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法呢?也许使用find命令?我需要打印出文件的完整路径.

bash ls find

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

使用列名称的字符向量访问data.table中的列

假设我有一个R data.table:

 DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
Run Code Online (Sandbox Code Playgroud)

我有一个我想要提取的列名字符向量,或者更一般地操作:

cols = c("x","y")
Run Code Online (Sandbox Code Playgroud)

例如,我如何使用cols生成等效的

 DT[,lapply(.SD[,list(x,y)], min) ]
Run Code Online (Sandbox Code Playgroud)

有没有办法使用cols向量指定列表(x,y)?

r data.table

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

在 R data.table 中每组获取一行

我经常想一次处理 data.table 的一行。我一直在用

d[, j, by=rownames(d)]
Run Code Online (Sandbox Code Playgroud)

但这似乎并不总是有效(有时会通过似乎对列名求值来获得错误消息),并且在任何情况下都不是我想要做的事情的一个非常清晰的表达。

让我举一个具体的例子。

d = data.table(a=c(1,2),b=c(3,4))
f = function(x,y) x[1]+y[1] #expects length 1 vectors x and y and adds them
d[, id := 1:.N]
d[, f(a,b), by=id]
d[, id := NULL]
Run Code Online (Sandbox Code Playgroud)

情况是我有一个未矢量化的函数 f 。我用 id 列装饰了 d,所以我可以一次处理一行。我正在寻找一种更好的方法来做到这一点。

这是另一个例子,没有函数 f:

d[, list(a=a,b=b,s=a:b), by = id]
d[, id := NULL]
Run Code Online (Sandbox Code Playgroud)

r data.table

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

R中的model.matrix的data.table的Rownames

我有一个data.table DT,我想继续model.matrix它.每行都有一个字符串ID,存储在ID列中DT.当我跑步model.matrixDT,我的公式排除了ID列.问题是,model.matrix由于NA而丢弃了一些行.如果我设置的rownames DTID列,调用之前model.matrix,那么最终的模型矩阵具有rownames,和我都准备好.否则,我无法弄清楚我最终会遇到什么行.我正在设置rownames rownames(DT) = DT$ID.但是,当我尝试添加新列时DT,我会收到投诉

"检测到无效的.internal.selfref ......在早些时候,这个data.table已经被R复制了."

所以我很想知道

  1. 有没有更好的方法来设置一个rownames data.table
  2. 有没有更好的方法来解决这个问题.

r model.matrix data.table

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

对齐多个xts时间序列图

我有一个4列的xts对象.前3列是一个比例的平均值和下限和上限置信度.第4列是样本大小.由于尺度不同,我认为在一个图形上绘制前3列是有意义的,并在其下方的单独图形上绘制第4列.有关如何做到这一点的任何建议?

这是构建xts对象的代码,就像我拥有的​​那样:

startTime = Sys.time()
n = 10
d = seq(startTime,startTime+n*24*60*60,by="1 day")
a = sample(10000,length(d),replace=TRUE)
p = runif(length(d))
l = p/2
u = p+(p+1)/2
x= xts(p,d)
x = cbind(x,l,u,a)
colnames(x) = c("prop","low","high","size")
Run Code Online (Sandbox Code Playgroud)

plot r zoo xts

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

标签 统计

r ×4

data.table ×3

bash ×1

find ×1

ls ×1

model.matrix ×1

plot ×1

xts ×1

zoo ×1