根据列名将数据帧转换为命名向量
Convert dataframe into named vectors based on column names
我有以下数据框:
df <- data.frame(a = 1, b = 2, c = 3)
我想将其转换为三个命名向量:
a <- 1
b <- 2
c <- 3
如何以编程方式执行此操作? tidyverse
解决方案特别受欢迎。
df[,'a']
也有效
您可以这样做(尽管@MartinGal 提供了更好的方法)。我们可以将每一列转换为一个列表,然后 flatten
只拥有一个命名向量,然后可以保存到全局环境中。
library(tidyverse)
list2env(flatten(apply(df, 2, function(x) as.list(x))), envir = .GlobalEnv)
另一个可能的解决方案(不过你应该遵循@MartinGal 的方法):
list2env(lapply(df, \(x) `<-`(names(x), x)),.GlobalEnv)
a
#> [1] 1
b
#> [1] 2
c
#> [1] 3
我有以下数据框:
df <- data.frame(a = 1, b = 2, c = 3)
我想将其转换为三个命名向量:
a <- 1
b <- 2
c <- 3
如何以编程方式执行此操作? tidyverse
解决方案特别受欢迎。
df[,'a']
也有效
您可以这样做(尽管@MartinGal 提供了更好的方法)。我们可以将每一列转换为一个列表,然后 flatten
只拥有一个命名向量,然后可以保存到全局环境中。
library(tidyverse)
list2env(flatten(apply(df, 2, function(x) as.list(x))), envir = .GlobalEnv)
另一个可能的解决方案(不过你应该遵循@MartinGal 的方法):
list2env(lapply(df, \(x) `<-`(names(x), x)),.GlobalEnv)
a
#> [1] 1
b
#> [1] 2
c
#> [1] 3