gpt4 book ai didi

R:访问具有整数名称的向量

转载 作者:行者123 更新时间:2023-12-05 04:18:47 25 4
gpt4 key购买 nike

我有一个大函数,它有一个定义如下的向量:

v <- mat.or.vec(length(communities), 1)
names(v) <- communities

然后,我按如下方式在循环中访问 v 的元素

for(c in communities){
v[c] = 1
}

编写和测试此代码时,communities 列表是一个字符串列表。但是今天,当我在 communities 列表中具有所有整数值的数据集上运行它时,我的函数崩溃了。我花了一段时间才弄清楚,当 communities 是一个整数列表时,c 是一个整数并且 v[c] 访问 c<v 的 sup>th 元素,而不是 v 的名称为 c 的元素。

我可以通过使用类似 v[as.character(c)] 的东西来解决这个问题。有许多这样的变量面临同样的问题。

这个问题有没有更优雅的解决方案?

最佳答案

嗯,最简单的更改是在 for 语句中:

for(c in as.character(communities)){
v[c] = 1
}

或向量化:

v[as.character(communities)] <- 1

或者为了获得更多控制权,您可以自己进行匹配:

idx <- match(communities, names(v))
v[idx] <- 1

关于R:访问具有整数名称的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com