如何将数据框(dataframe)的指定变量转换为列表?
将大数据框转换为各列组成的列表
原始数据框
df = data.frame(x = c(1,0,0,0,1,1,1,NA), y = c(2,2,2,2,3,3,2,NA), z = c(1:7,NA), m = c(1,2,3,1,2,3,1,NA) ) df$x = factor(df$x) df$y = factor(df$y) df$m = factor(df$m)
需求
把上述数据框的每一列单独提取出来,组成一个结构如下的列表:
l1 = list(df$x,df$y,df$z,df$m)
解决方案
针对大数据量场景,最高效简洁的方式是使用as.list()函数,它会自动将数据框的每一列转换为列表元素,完全匹配需求:
l1 = as.list(df)
预期输出
[[1]] [1] 1 0 0 0 1 1 1 <NA> Levels: 0 1 [[2]] [1] 2 2 2 2 3 3 2 <NA> Levels: 2 3 [[3]] [1] 1 2 3 4 5 6 7 NA [[4]] [1] 1 2 3 1 2 3 1 <NA> Levels: 1 2 3
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

