相关疑难解决方法(0)

data.table中的逐行操作和更新

我最终得到了一个很大的data.table,我必须每行做一次操作.(是的......我知道这显然不是data.table的用途)

R) set.seed(1)
R) DT=data.table(matrix(rnorm(100),nrow=10))
R) DT[,c('a','b'):=list(1:10,2:11)]
R) DT
               V1             V2             V3             V4            V5            V6             V7              V8            V9           V10  a  b
 1: -0.6264538107  1.51178116845  0.91897737161  1.35867955153 -0.1645235963  0.3981058804  2.40161776050  0.475509528900 -0.5686687328 -0.5425200310  1  2
 2:  0.1836433242  0.38984323641  0.78213630073 -0.10278772734 -0.2533616801 -0.6120263933 -0.03924000273 -0.709946430922 -0.1351786151  1.2078678060  2  3
 3: -0.8356286124 -0.62124058054  0.07456498337  0.38767161156  0.6969633754  0.3411196914  0.68973936245  0.610726353489  1.1780869966  1.1604026157  3  4
 4:  1.5952808021 -2.21469988718 -1.98935169586 -0.05380504058  0.5566631987 -1.1293630961  0.02800215878 -0.934097631644 -1.5235668004  0.7002136495  4  5
 5:  0.3295077718  1.12493091814  0.61982574789 -1.37705955683 -0.6887556945  1.4330237017 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

在 pmin 中使用 na.rm=T 和 do.call

我想提取存储在列表中的多个矩阵的每个元素的最小值。我正在使用 pmin:

do.call(pmin, mylist)
Run Code Online (Sandbox Code Playgroud)

问题是这些矩阵的某些元素是 NA,并且 pmin 产生一个 NA,我希望它在排除 NA 后产生最小值。我尝试使用 do.call(pmin(na.rm=T), mylist) 解决我的问题

但我收到错误。我也尝试过这个答案:data.table and pmin with na.rm=TRUE argument,但我收到错误,因为 .SD 不在环境中。类似问题的简单代码是:

mymat1 <- matrix(rnorm(10), ncol=2)

mymat2 <- matrix(rnorm(10), ncol=2)
mymat2[2,2] <- NA

mymat3 <- matrix(rnorm(10), ncol=2)

mylist <- list(mymat1, mymat2, mymat3)

do.call(pmin, mylist)
Run Code Online (Sandbox Code Playgroud)

我在结果矩阵的位置 [2,2] 处得到一个 NA,并且我想获得忽略 NA 的最小值。有什么建议么?谢谢。

r do.call

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

标签 统计

r ×2

data.table ×1

do.call ×1