我有這個資料框(但讓我們想象它很大)
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)
結果輸出如下:
[[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
將不勝感激
uj5u.com熱心網友回復:
使用as.list. "data.frame"s 實際上是串列,我們只需要洗掉 就"data.frame" class可以得到底層的"list".
as.list(df)
# $x
# [1] 1 0 0 0 1 1 1 <NA>
# Levels: 0 1
#
# $y
# [1] 2 2 2 2 3 3 2 <NA>
# Levels: 2 3
#
# $z
# [1] 1 2 3 4 5 6 7 NA
#
# $m
# [1] 1 2 3 1 2 3 1 <NA>
# Levels: 1 2 3
或者unclass它來自data.frame
unclass(df)
# $x
# [1] 1 0 0 0 1 1 1 <NA>
# Levels: 0 1
#
# $y
# [1] 2 2 2 2 3 3 2 <NA>
# Levels: 2 3
#
# $z
# [1] 1 2 3 4 5 6 7 NA
#
# $m
# [1] 1 2 3 1 2 3 1 <NA>
# Levels: 1 2 3
#
# attr(,"row.names")
# [1] 1 2 3 4 5 6 7 8
uj5u.com熱心網友回復:
或者只是使用c
c(df)
-輸出
$x
[1] 1 0 0 0 1 1 1 <NA>
Levels: 0 1
$y
[1] 2 2 2 2 3 3 2 <NA>
Levels: 2 3
$z
[1] 1 2 3 4 5 6 7 NA
$m
[1] 1 2 3 1 2 3 1 <NA>
Levels: 1 2 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528646.html
標籤:r列表数据框变量
