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)