r - 通过循环命名变量 R
问题描述
我目前正在研究一个函数,它将返回点和 p 簇之间的距离。
which_cluster<-function(coord){
cluster<-get_cluster(data) # return a matrix
nbr_clusters=nrow(cluster)
nbr_dim=ncol(cluster)
liste<-c()
for(i in 1:nbr_clusters){
dist_c_i=0
for (j in nbr_dim){
paste('vec_', i, sep = '')
dim_j_c_i=cluster[i,j]
dist_c_i<-dist_c_i+ (dim_j_c_i-coord[i])^2
}
dist_c_i<-sqrt(dist_c_i)
liste<-liste[,dist_c_i]
}
return(liste)
}
我希望变量名中的“i”和“j”被识别为 for 循环的 i 和 j。
谢谢您的帮助。放轻松,我是初学者;)
解决方案
不。
声明过多的变量是缓慢且难以管理的。
相反,使用列表和矩阵。
当您似乎尝试做一个距离矩阵时,将其存储为一个矩阵,由 I 和 j 索引,即dist[i,j]
.
推荐阅读
- c - 警告:建议在 '!' 的操作数周围加上括号 或将 '&' 更改为 '&&' 或 '!' 到'~'
- testing - BrowserStack 与 TestCafe 的集成:如何修复“指定的屏幕分辨率与所选操作系统版本不兼容”?
- hyperledger-fabric - 如何获取 Fabric 身份的秘密
- xml - PowerShell Invoke-WebRequest:可以解析此 XML 响应吗?
- spring-boot - 通过 SSL 连接时如何配置 HermesJMS 以使用特定的客户端证书?
- sql - Postgresql 查询 - Posgresql 中日期时间字段的平均时间?
- docker - docker-compose up 运行 network_mode=host 服务失败
- excel - 如何将带有事件的按钮/文本框添加到 Excel 表单
- firebase - Allow users from different collection see a different stream
- python - 使用 Python SDK 将 azure blob 复制到 azure 文件共享