我有一個這樣的資料框:
Number <- c(1,2,3)
Number2 <- c(10,12,14)
Letter <- c("A","B","C")
df <- data.frame(Number,Number2,Letter)
我想將 df 分成各自的三列,每一列都成為具有各自列名的向量。本質上,輸出應該與上面示例中的原始三個輸入向量完全一樣。
我嘗試過split函式并使用for loop,但沒有成功。
有任何想法嗎?謝謝你。
uj5u.com熱心網友回復:
我們可能會使用unclass的data.frame是list與附加屬性。通過unclassing,它洗掉了data.frame屬性
unclass(df)
或者另一種選擇是asplit用MARGIN指定為2
asplit(df, 2)
注意:它們都回傳一個named list. 如果我們打算在全域環境中創建新物件,請使用list2env(雖然不推薦)
uj5u.com熱心網友回復:
我們可以使用c或as.list
> c(df)
$Number
[1] 1 2 3
$Number2
[1] 10 12 14
$Letter
[1] "A" "B" "C"
> as.list(df)
$Number
[1] 1 2 3
$Number2
[1] 10 12 14
$Letter
[1] "A" "B" "C"
uj5u.com熱心網友回復:
假設您正在嘗試將這些創建為全域環境中的向量,請使用list2env:
df <- data.frame(Number = c(1, 2, 3),
Number2 = c(10, 12, 14),
Letter = c("A", "B", "C"))
list2env(df, .GlobalEnv)
## <environment: R_GlobalEnv>
ls()
## [1] "df" "Letter" "Number" "Number2"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360262.html
