现在我有一个数据框,定义如下。
df=data.frame(x1=c(1,2,3),x2=c(4,5,6))
我只有data.frame的字符串变量
df.str = 'df'
如何在不使用变量名df
的情况下更改df$x1
列(例如,将0指定为df
)?只允许df.str
,因此您无法撰写df$x1=0
。
我尝试了很多方法,但没有一种方法有效:
df.str$x1=0
df.str[[x1]]=0
df.str[,'x1']=0
答案 0 :(得分:1)
我们需要get
来获取值,并assign
来分配值
get(df.str)
assign(df.str, `[<-`(get(df.str), "x1", value = 0))
现在,如果我们检查&#39; df&#39;,&#39; x1&#39;列分配为0
df
# x1 x2
#1 0 4
#2 0 5
#3 0 6