标签: matrix

R中模型矩阵中因子的所有级别

我有一个data.frame数字和因子变量组成,如下所示.

testFrame <- data.frame(First=sample(1:10, 20, replace=T),
           Second=sample(1:20, 20, replace=T), Third=sample(1:10, 20, replace=T),
           Fourth=rep(c("Alice","Bob","Charlie","David"), 5),
           Fifth=rep(c("Edward","Frank","Georgia","Hank","Isaac"),4))
Run Code Online (Sandbox Code Playgroud)

我想构建一个matrix为该因子分配虚拟变量并单独保留数值变量.

model.matrix(~ First + Second + Third + Fourth + Fifth, data=testFrame)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,在运行时会将lm每个因子的一个级别作为参考级别.但是,我想为matrix所有因素的每个级别构建一个带有虚拟/指示变量的变量.我正在建立这个矩阵,glmnet所以我不担心多重共线性.

有没有办法model.matrix为每个级别的因子创建假人?

model r matrix indicator

62
推荐指数
4
解决办法
5万
查看次数

Python的逆矩阵

如何在python中得到矩阵的逆?我自己实现了它,但它是纯粹的python,我怀疑有更快的模块可以做到这一点.

python algorithm matrix linear-algebra matrix-inverse

60
推荐指数
6
解决办法
11万
查看次数

如何在R中创建一个空矩阵?

我是R.的新手.我想用我的for循环结果填充一个空矩阵cbind.我的问题是,如何消除矩阵第一列中的NA.我在下面包含我的代码:

output<-matrix(,15,) ##generate an empty matrix with 15 rows, the first column already filled with NAs, is there any way to leave the first column empty?

for(`enter code here`){
  normF<-`enter code here`
  output<-cbind(output,normF)
}
Run Code Online (Sandbox Code Playgroud)

输出是我预期的矩阵.唯一的问题是它的第一列充满了NA.如何删除这些NA?

r matrix na

59
推荐指数
3
解决办法
25万
查看次数

寻找post/pre/set Translate(在Matrix对象中)以及如何使用它们的解释

关于使用这些方法时实际发生的情况,文档非常模糊.有人可以解释Matrix实际上如何影响它所设置的位图吗?他们在那里使用了连接这个术语,但是我不清楚这个术语如何应用于坐标数据(之前只用过字符串操作).

android bitmap matrix android-canvas

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

如何更有效地将巨大的矢量列表转换为矩阵?

我有一个长度为130,000的列表,其中每个元素是一个长度为110的字符向量.我想将此列表转换为维度为1,430,000*10的矩阵.我怎样才能更有效地做到这一点?\我的代码是:

output=NULL
for(i in 1:length(z)) {
 output=rbind(output,
              matrix(z[[i]],ncol=10,byrow=TRUE))
}
Run Code Online (Sandbox Code Playgroud)

performance r list matrix

58
推荐指数
3
解决办法
13万
查看次数

将列表附加到R中的列表列表

我有问题将数据附加到已经是列表格式的列表中.我有一个程序,它将在模拟循环中导出结果对象.数据本身存储为矩阵列表.我的想法是将这些列表存储在一个列表中,然后将这个列表列表保存为R对象以供以后分析,但是我遇到了一些正确的问题.我将使用值而不是模拟中的矩阵数据来展示我用小抽象示例所做的事情:

假设我已经运行了3次模拟循环.在迭代期间,结果列表需要收集到我将保存为R对象的列表列表中:

列表包含其他列表并保存: outlist1 <- list()

第一次迭代: resultsa <- list(1,2,3,4,5)

outlist <- append(outlist1,resultsa)

第二次迭代: resultsb <- list(6,7,8,9,10)

outlist <- append(outlist1,b)

第三次迭代: resultsc <- list(11,12,13,14,15)

outlist <- list(outlist2,c)

但是,此解决方案不适用于以这种方式增长包含列表的列表,所需的结果是:

>outlist
[[1]]
[[1]][[1]]
[1] 1

[[1]][[2]]
[1] 2

[[1]][[3]]
[1] 3

[[1]][[4]]
[1] 4

[[1]][[5]]
[1] 5


[[2]]
[[2]][[1]]
[1] 6

[[2]][[2]]
[1] 7

[[2]][[3]]
[1] 8

[[2]][[4]]
[1] 9

[[2]][[5]]
[1] 10


[[3]]
[[3]][[1]]
[1] 11

[[3]][[2]]
[1] 12

[[3]][[3]]
[1] 13

[[3]][[4]]
[1] 14

[[3]][[5]]
[1] 15
Run Code Online (Sandbox Code Playgroud)

但是,我得到的是:

> outlist3 …
Run Code Online (Sandbox Code Playgroud)

r list append matrix extend

56
推荐指数
5
解决办法
10万
查看次数

如何用R中的向量元素划分矩阵的每一行

我想用固定的向量划分矩阵的每一.例如

mat<-matrix(1,ncol=2,nrow=2,TRUE)
dev<-c(5,10)
Run Code Online (Sandbox Code Playgroud)

mat/dev分割各dev.

     [,1] [,2]
[1,]  0.2  0.2
[2,]  0.1  0.1
Run Code Online (Sandbox Code Playgroud)

但是,我希望得到这个结果,即按行进行操作:

rbind(mat[1,]/dev, mat[2,]/dev)

     [,1] [,2]
[1,]  0.2  0.1
[2,]  0.2  0.1
Run Code Online (Sandbox Code Playgroud)

到那儿有明确的命令吗?

r vector matrix

56
推荐指数
2
解决办法
6万
查看次数

总结一个矩阵列表

我有一个列表,其中每个元素是一个5*5矩阵.例如

[[1]]   
           V1          V2          V3          V4          V5      
      [1,]   0.000000   46.973700   21.453500  338.547000   10.401600 
      [2,]  43.020500    0.000000  130.652000  840.526000   56.363700 
      [3,]  12.605600  173.238000    0.000000  642.075000   19.628100 
      [4,] 217.946000  626.368000  481.329000    0.000000  642.341000 
      [5,] 217.946000  626.368000  481.329000    0.000000  642.341000 
[[2]]   
           V1          V2          V3          V4          V5      
      [1,]   0.000000   47.973700   21.453500  338.547000   10.401600 
      [2,]  143.020500    0.000000  130.652000  840.526000   56.363700 
      [3,]  312.605600  17.238000    0.000000  642.075000   19.628100 
      [4,]  17.946000  126.368000  481.329000    0.000000  642.341000
      [5,] 217.946000  626.368000  481.329000    0.000000  642.341000  
...
Run Code Online (Sandbox Code Playgroud)

如何使用类似应用的函数对矩阵[1]到[n]求和,并返回一个5*5矩阵作为结果(每个元素是列表中每个矩阵中相应元素的总和)?

r list matrix

55
推荐指数
3
解决办法
3万
查看次数

漂亮的打印2D Python列表

是否有一种简单的内置方法将2D Python列表打印为2D矩阵?

所以这:

[["A", "B"], ["C", "D"]]
Run Code Online (Sandbox Code Playgroud)

会变得像

A    B
C    D
Run Code Online (Sandbox Code Playgroud)

我找到了pprint模块,但它似乎没有做我想要的.

python matrix

55
推荐指数
8
解决办法
7万
查看次数

生成包含取自n个向量的所有元素组合的矩阵

这个问题经常以某种形式出现(例如,见此处此处).所以我认为我会以一般形式呈现它,并提供一个可能供将来参考的答案.

给定任意数量n的可能不同大小的向量,生成一个n列矩阵,其行描述从这些向量中获取的元素的所有组合(笛卡尔积).

例如,

vectors = { [1 2], [3 6 9], [10 20] }
Run Code Online (Sandbox Code Playgroud)

应该给

combs = [ 1     3    10
          1     3    20
          1     6    10
          1     6    20
          1     9    10
          1     9    20
          2     3    10
          2     3    20
          2     6    10
          2     6    20
          2     9    10
          2     9    20 ]
Run Code Online (Sandbox Code Playgroud)

arrays matlab combinations matrix cartesian-product

54
推荐指数
3
解决办法
2万
查看次数