由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - R似乎根本就没有认真考虑过global variable的改写问题
相关主题
请教什么时候变量会被load进stack,什么时候进入heap呢?python用全局变量能节省程序执行时间吗?
C++ 全局变量是怎么回事?请问python能否在一个子程序里边创立独立的命名空间?
关于多线程编程的一个问题[求教大虾]关于C++编译期变量和运行期变量的区别,总是有疑惑
问个C语言里面全局变量和本地变量引用问题刚看完类这一章,有些大小问题,请指教,谢谢
关于线程读写全局变量的问题c++如果调用没参数的函数不用加()就好了
请问多个线程同时访问同一个内存地址会不会使得程序变慢从全局变量到IOC模式
老哥使用的一项技术: extern定义全局变量FP over head很高
[bssd]goto的现实根据MPI xl fortran problem on Blue Gene
相关话题的讨论汇总
话题: coln话题: data话题: col话题: 函数话题: 全局变量
进入Programming版参与讨论
1 (共1页)
m*****n
发帖数: 3575
1
一个简单问题——把矩阵某一列刷成零
--------------------------------------
#先做个矩阵
A = matrix(1:10, ncol=2)
#现在将它的第二列刷成零
A[,2]=0
#检查一下
A
#还原
A = matrix(1:10, ncol=2)
======================================
我想把这种功能固化进一个函数里,从广义上说是对数据的一部分进行修改
--------------------------------------
zero_col <- function(data, coln){data[,coln]=0; return(data)}
#应用此函数
zero_col(A,2)
#再检查A是否被修改了
A
======================================
这样会出来两个结果,改的只是函数里面的data,而不是全局变量A
那全局变量如何改?有个"<<-"是改全局变量的
--------------------------------------
zero_col <- function(data, coln){data[,coln] <<- 0}
zero_col(A,2)
======================================
然后这个函数可耻的语法错误了
原来`<<-`符号只能赋值,不能改写
R作为大数据的利器,可真厉害啊!
d******c
发帖数: 2407
2
<- 是一个函数,在data[,coln] <- 0 里实际调用的是另一个matrix为此定义的函数,
而不是常规<-
<<-只替代常规<-
解决办法很多,先用<-,然后data <<- data,或者不用全局变量而是在函数外面覆盖
你的值
凡是这种局部修改,实际上copy已经发生了,<<-就算能用,也没有减少copy 的次数,
所以copy也没有性能损失。
R现在好像没宣传是大数据利器,主要是包多,用起来简单而已。python吹的比较多。
对R语法的抱怨不稀奇,历史悠久了。
1 (共1页)
进入Programming版参与讨论
相关主题
MPI xl fortran problem on Blue Gene关于线程读写全局变量的问题
问个char * 的问题请问多个线程同时访问同一个内存地址会不会使得程序变慢
c里全局数组的再次赋值问题老哥使用的一项技术: extern定义全局变量
C++编程原则的问题[bssd]goto的现实根据
请教什么时候变量会被load进stack,什么时候进入heap呢?python用全局变量能节省程序执行时间吗?
C++ 全局变量是怎么回事?请问python能否在一个子程序里边创立独立的命名空间?
关于多线程编程的一个问题[求教大虾]关于C++编译期变量和运行期变量的区别,总是有疑惑
问个C语言里面全局变量和本地变量引用问题刚看完类这一章,有些大小问题,请指教,谢谢
相关话题的讨论汇总
话题: coln话题: data话题: col话题: 函数话题: 全局变量