【问题标题】:Turning dataframe into variables将数据框转换为变量
【发布时间】:2019-11-21 19:30:22
【问题描述】:

我有一个数据框,想将值转换为变量。

我尝试过使用 as.numeric(unlist...) 将它们一个一个拉出来(这不是一个大列表),但我正在寻找更好的方法。

这是我的数据

dataframe = structure(list(V1 = c(564.58, 7834.1, 134.2), file = structure(c(2L, 
1L, 3L), .Label = c("Blue", "Red", "Yellow"), class = "factor")), class = "data.frame", row.names = c(NA, 
-3L))

我正在寻找这个:

Red = 564.58
Blue = 7834.1
Yellow = 134.2

谁能提出一个更好的方法来做到这一点?

【问题讨论】:

  • 您需要setNames(dataframe$V1, dataframe$file)split(dataframe$V1, dataframe$file) 吗?
  • 我可以拆分它们,但我不能将它们分配为单独的变量(没有通过循环并将它们匹配)。
  • 您可以使用assign 将它们转换为单个变量,但通常建议将变量保留在列表中而不是单个变量中。

标签: r dataframe


【解决方案1】:

以下应该有效。将您的值V1 放入带有as.list 的列表中,使用setNames 将名称设置为file,然后使用list2env 将列表元素转换为全局环境中的变量:

list2env(setNames(as.list(df$V1), df$file), .GlobalEnv)

在回答之后,我还应该提到,经常不鼓励做这种事情。使用大量变量来爆炸矢量化数据以污染您的环境提供的优势很少(如果有的话),但也有许多劣势。关于assign 的讨论也适用于list2env。你可以阅读它here

【讨论】:

  • 谢谢 - 感谢讨论的链接。我只有一个非常小的列表,需要修补这些数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
相关资源
最近更新 更多