r - 在 R 中创建规范基向量?

标签 r vector

有没有一种有效的方法来创建规范基向量:

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/

相关文章:

r - 调整R中图例的字体

r - 在Linux上安装nloptr- fatal error : nlopt. h:无此类文件或目录

c++ - 尝试将 vector<int> 推到映射以计算模式

c++ - Visual Studio 2015:std::vector 的可视化不在调试中显示信息

java - ImageView vector 资源在 Nougat 上工作但在 Oreo 上崩溃

c++ - 如何按值从 vector 中删除元素但仅删除该值的单个实例?

r - r 中的特殊类型的虚拟代码

r - 如何使用 IQR 方法移除/消除异常值

r - ggplot2:将多个箱线图作为时间序列排列

java - WEKA - 从 Java 中的特征向量列表创建实例