【发布时间】:2018-06-08 03:01:31
【问题描述】:
现在我有一个定义如下的数据框。
df=data.frame(x1=c(1,2,3),x2=c(4,5,6))
而我只有那个data.frame的字符串变量
df.str = 'df'
如何在不使用变量名df 的情况下更改df 的列(例如,将0 分配给df$x1)?只允许df.str,因此你不能写df$x1=0。
我尝试了很多方法,但都没有奏效:
df.str$x1=0
df.str[[x1]]=0
df.str[,'x1']=0
【问题讨论】:
-
new_df <- get(df.str); new_df$x1 <- 0 -
@RonakShah - 非常接近,但不确定是否重复,因为这也涉及在引用的 data.frame 中分配变量。
-
@thelatemail 我认为这个问题的主要目的是知道
get或mget,一旦OP 得到它,用0 替换列值很容易。我可以添加@ 987654321@ 链接到已标记的欺骗。 -
@RonakShah - 当然,这可能会更干净地掩盖它。
-
@ZhenduoCao -
`[<-`本质上只是将df["var"] <- 1放回函数形式 -`[<-`(df, "var", 1)