如果我只知道数据框的字符串变量名,如何更改列的值?

时间:2018-06-08 03:01:32

标签: r dataframe

现在我有一个数据框,定义如下。

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

1 个答案:

答案 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