有没有一种有效的方法来创建规范基向量:
e_1=c(1,0,0,...),
e_2=c(0,1,0,...),
e_3=c(0,0,1,...),
...
对于 R 中的任意长度并且可能很大的 p?
我知道我能做到
e_1 = rep(0,p)
e_1[1] = 1
等等或diag(p)[1]
...但我想知道是否有更有效的方法,因为我在循环中一次只需要一个。
最佳答案
使用replace
可以缩短一些:
make_basis <- function(k, p = 10) replace(numeric(p), k, 1)
# usage
e_4 = make_basis(4)
e_4
# [1] 0 0 0 1 0 0 0 0 0 0
关于r - 在 R 中创建规范基向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438613/