如何分隔数据框中的每一列,并将每一列放入自己的新数据集中

时间:2018-07-10 15:04:31

标签: r dplyr tidyr

这个问题的标题可能有些混乱,所以让我给出更多细节。如果我的术语有缺陷,我事先表示歉意。这是我的数据框示例

a b c d e
1 4 2 7 8
2 4 3 7 1
4 3 5 9 3

所以我想做的是使每一列成为自己的数据集。我知道您可以做类似a <- df[c(1)] b <- df[c(2)]之类的事情。我的实际数据帧有成千上万的列,因此必须输入来会很烦人。我想知道是否有更快的方法?理想情况下,我希望新数据集具有与列相同的名称,但我不确定如何执行此操作。我知道会有成千上万的数据集,但是我有一台可以处理的数据集

1 个答案:

答案 0 :(得分:1)

您可以使用list2env,但请三思而后行,可能最好使结构保持结构化:

df <- head(iris)
list2env(df,envir = .GlobalEnv)
Species
# [1] setosa setosa setosa setosa setosa setosa
# Levels: setosa versicolor virginica

或者将它们保留为一列数据。

list2env(setNames(lapply(names(df), function(x) df[x]),names(df)),
  envir = .GlobalEnv)
Species
#   Species
# 1  setosa
# 2  setosa
# 3  setosa
# 4  setosa
# 5  setosa
# 6  setosa