Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R get()是否检索实际对象?_R - Fatal编程技术网

R get()是否检索实际对象?

R get()是否检索实际对象?,r,R,有人能解释一下下面的行为吗 df <- data.frame(dog = 1:5) colnames(df) <- "cat" # This works colnames( get('df') ) <- "cat" # error colnames( eval(parse(text='df')) ) <- "cat" # error 错误是 Error in colnames(get("df")) <- "cat" : target of assignment

有人能解释一下下面的行为吗

df <- data.frame(dog = 1:5)

colnames(df) <- "cat" # This works
colnames( get('df') ) <- "cat" # error
colnames( eval(parse(text='df')) ) <- "cat" # error
错误是

Error in colnames(get("df")) <- "cat" : 
target of assignment expands to non-language object
请使用分配

assign(names(eval(as.name("df"))), "cat")
parsetext='df'不起作用的原因是,它返回一个由eval计算的表达式,对于deails,请参见答案@Thomas linked to

get检索实际对象,但这不是代码不起作用的原因

注意

x <- get('df')
colnames(x) <- 'cat'

这是无效的,比如get'df'是一个标准函数;你的代码隐藏了它的定义;df不是全局变量的好名字。啊,在小屏幕上工作的问题!谢谢林康@Thomashis与手头的问题无关我想我在帮OP定名字的过程中被冲昏头脑了!
get('df') <- 34
sqrt(4) <- 2
get('df') <- `colnames<-`(x, y)