【问题标题】:Make column name the variable name and assign the value of the column to that variable将列名设为变量名并将列的值分配给该变量
【发布时间】:2016-10-18 09:57:36
【问题描述】:

让我们看看下面的 DF

> df <- data.frame(var1=5,var2=6,var3=7)
> df
  var1 var2 var3
1    5    6    7
> 

我现在想自动“创建”三个变量,并将它们各自的值添加到全局环境中,如下所示:

var1 <- 5
var2 <- 6
var3 <- 7

我该怎么做?

提前谢谢你。 安德烈

【问题讨论】:

  • 全局变量是一个非常冒险的想法,你能详细说明你这次尝试的目标是什么
  • 我在网上发现了一个相当复杂的功能,可以评估我的调查。我认为通过执行上述操作,我可以根据需要使用它,而无需深入挖掘并完全理解它。它或多或少是一个测试,如果它有效,我节省了很多时间。我知道这样做很丑。

标签: r variables assign names


【解决方案1】:

首先,您应该问自己是否除了分配全局变量之外别无他法,请参阅Why is using assign bad? 了解有关该主题的一些讨论。 如果你真的想这样做,你可以这样做

for(i in 1:ncol(df)){
    assign(colnames(df)[i], df[,i])
}

但是,我鼓励您找到与分配变量不同的解决方案。

【讨论】:

  • 有没有办法用 lapply 做到这一点?不能让它工作: lapply(df, function(x) assign(names(x), x))
  • 无论如何谢谢。它奏效了,我可以得到分数,一切都很完美:-)
猜你喜欢
  • 1970-01-01
  • 2016-08-15
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多