R语言向量从0开始索引的技术咨询及E(graf)$weight向量说明
R语言向量是否支持从0开始索引?
嘿,这个问题问得很常见——默认情况下,R语言的向量是完全基于1起始索引的,原生并不支持从0开始的索引方式。
你贴出来的向量输出里,开头的[1]、[10]这些标记其实已经直观说明了这一点:第一个元素的索引就是1,第十个元素对应索引10,以此类推。比如你要取这个向量的第一个元素,直接用:
E(graf)$weight[1]
就能得到0.36412384,这就是R的标准用法。
如果出于某些需求,你确实想要模拟0起始索引的行为,也可以自己写个简单的小工具函数来实现,比如:
# 封装一个支持0索引的向量访问函数 get_with_zero_idx <- function(vec, idx) { # 把输入的0索引转成R的1索引 vec[idx + 1] } # 用0索引取第一个元素 get_with_zero_idx(E(graf)$weight, 0) # 返回0.36412384
不过这里得提醒一句:尽量不要强行改用0索引,因为R整个生态(包括内置函数、包、社区代码)都是围绕1起始索引设计的,强行切换很容易在后续代码里造成逻辑混淆,尤其是和其他开发者协作的时候,遵循默认规则会更省心。
内容的提问来源于stack exchange,提问作者Nerson48
相关产品推荐
相关产品推荐

