1

我是处理 R 中大矩阵的新手。我正在尝试学习ff. 我可以创建大型ff矩阵ffsdist1ffsdist2如下所示。

library(stringdist)
library(babynames)
library(ff)

d <- babynames
sdist1 <- stringdistmatrix(d$name[1:1000], d$name[1:2500], method="lv", useBytes = T)
sdist2 <- stringdistmatrix(d$name[1001:2000], d$name[1:2500], method="lv", useBytes = T)

我可以按如下方式创建 ff 矩阵

ffsdist1 <- ff(sdist1, dim=dim(sdist1))
ffsdist2 <- ff(sdist2, dim=dim(sdist2))

我想在矩阵上sdist1和矩阵中复制以下操作。sdist2ff

1.rbind()

sdist <- rbind(sdist1, sdist2)

2.更换零件使用[

sdist1[sdist1 > 0] <- Inf

3.提取零件使用[

ind1 <- grepl("\\bA", d$name[1:1000])
ind2 <- grepl("a\\b", d$name[1:1000])
sdist[ind1 & ind2]

sdist[,which(ind1)]

4.添加两个矩阵

sdistsum <- sdist1 + sdist2

5. 转置

tsdist1 <- t(sdist1)

这个对吗

tffsdist1 <- t(ffsdist1)

6.使用apply

apply(sdist, 1,
      function(x) paste(as.character(unlist(d$name[x <= 3])),
                        collapse=", "))

如何使用ffpackage in做到这一点R

4

0 回答 0