67-R中dataframe與list的轉(zhuǎn)換

內(nèi)容概覽

  • 1、dataframe轉(zhuǎn)換為list
    -- 1.1. 每一列作為list的一個元素
    -- 1.2. 每一行作為list的一個元素
    -- 1.3. 對行進(jìn)行分組蹋订,每一組作為list的一個元素
  • 2露戒、對list進(jìn)行轉(zhuǎn)置
  • 3、list轉(zhuǎn)換為dataframe
    -- 3.1 list的每個元素作為一列
    -- 3.2 list的每個元素作為一行

1捶箱、dataframe轉(zhuǎn)換為list

1.1 每一列作為list的一個元素

> library(pacman)
> p_load(tidyverse)
> df <- read.csv("./data_set/store-reliab-data.csv", header = T) %>% as_tibble
> str(df)
## Classes 'tbl_df', 'tbl' and 'data.frame':    80 obs. of  7 variables:
##  $ testid    : int  1 1 1 1 1 1 1 1 2 2 ...
##  $ n         : int  8 8 8 8 8 8 8 8 8 8 ...
##  $ alpha     : num  0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 ...
##  $ times     : num  19.13 2.94 27.81 15.24 24.75 ...
##  $ delta     : int  0 1 0 0 0 0 0 0 0 1 ...
##  $ true_theta: int  10 10 10 10 10 10 10 10 10 10 ...
##  $ lb        : logi  NA NA NA NA NA NA ...

as.list()將每一列轉(zhuǎn)換為一個list:

> list1 <- as.list(df)
> list1
## $testid
##  [1]  1  1  1  1  1  1  1  1  2  2  2  2  2  2  2  2  3  3  3  3  3  3  3  3  4  4
## [27]  4  4  4  4  4  4  5  5  5  5  5  5  5  5  6  6  6  6  6  6  6  6  7  7  7  7
## [53]  7  7  7  7  8  8  8  8  8  8  8  8  9  9  9  9  9  9  9  9 10 10 10 10 10 10
## [79] 10 10
## 
## $n
##  [1] 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
## [41] 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
## 
## $alpha
##  [1] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
## [17] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
## [33] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
## [49] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
## [65] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
## 
## $times
##  [1] 19.13  2.94 27.81 15.24 24.75 88.48 21.09 20.70 28.14  9.82  5.05  8.83 35.47
## [14]  9.63  4.41  8.49  1.41  0.79  7.72 52.79 15.64 13.29 19.14  0.50  3.24 13.20
## [27]  2.04 10.23  3.02  7.25  7.52  2.35 10.80 10.28 12.92 12.53  5.55  3.01 12.93
## [40]  9.95  5.14 20.08  4.22 21.79 32.18  5.58  5.95  9.77  2.10  3.09 11.06  7.74
## [53]  0.90 11.08  2.47 15.72 36.25  3.23 20.48  8.53  6.10  6.28 13.39 17.34 19.40
## [66]  1.90  2.59  0.35  2.35 10.43  5.43 18.39  1.93  5.04  4.09  0.30 11.42  4.02
## [79]  7.92  6.17
## 
## $delta
##  [1] 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
## [41] 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0
## 
## $true_theta
##  [1] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
## [27] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
## [53] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
## [79] 10 10
## 
## $lb
##  [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [27] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [53] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [79] NA NA

1.2 每一行作為list的一個元素

> list2 <- split(df, 1:nrow(df))
> list2$`10`
## # A tibble: 1 x 7
##   testid     n alpha times delta true_theta lb   
##    <int> <int> <dbl> <dbl> <int>      <int> <lgl>
## 1      2     8  0.05  9.82     1         10 NA

1.3 對行進(jìn)行分組智什,每一組作為list的一個元素

> # 按testid進(jìn)行分組
> list3 <- split(df, df$testid)
> list3$`5`
## # A tibble: 8 x 7
##   testid     n alpha times delta true_theta lb   
##    <int> <int> <dbl> <dbl> <int>      <int> <lgl>
## 1      5     8  0.05 10.8      1         10 NA   
## 2      5     8  0.05 10.3      1         10 NA   
## 3      5     8  0.05 12.9      1         10 NA   
## 4      5     8  0.05 12.5      1         10 NA   
## 5      5     8  0.05  5.55     1         10 NA   
## 6      5     8  0.05  3.01     1         10 NA   
## 7      5     8  0.05 12.9      1         10 NA   
## 8      5     8  0.05  9.95     1         10 NA

2、對list進(jìn)行轉(zhuǎn)置

> list2.z <- t(list2$`10`)
> list2.z
##             [,1]
## testid      2.00
## n           8.00
## alpha       0.05
## times       9.82
## delta       1.00
## true_theta 10.00
## lb            NA

3讼呢、list轉(zhuǎn)化為dataframe

3.1 list的每個元素作為一列

> df1 <- as.data.frame(list1$testid)

3.2 list的每個元素作為一行

需要先轉(zhuǎn)換為矩陣撩鹿,再轉(zhuǎn)換為數(shù)據(jù)框。

> df2 <- data.frame(matrix(unlist(list1$delta), byrow = T, nrow = 1), stringsAsFactors = F)
> df2
##   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22
## 1  0  1  0  0  0  0  0  0  0   1   0   0   0   1   1   0   1   1   0   0   0   1
##   X23 X24 X25 X26 X27 X28 X29 X30 X31 X32 X33 X34 X35 X36 X37 X38 X39 X40 X41 X42
## 1   0   1   1   0   0   0   1   1   1   1   1   1   1   1   1   1   1   1   0   0
##   X43 X44 X45 X46 X47 X48 X49 X50 X51 X52 X53 X54 X55 X56 X57 X58 X59 X60 X61 X62
## 1   0   0   0   0   0   0   1   0   1   1   1   1   1   1   0   1   0   0   0   1
##   X63 X64 X65 X66 X67 X68 X69 X70 X71 X72 X73 X74 X75 X76 X77 X78 X79 X80
## 1   0   0   0   1   0   1   1   1   1   0   1   1   0   1   0   1   1   0
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悦屏,一起剝皮案震驚了整個濱河市节沦,隨后出現(xiàn)的幾起案子础爬,更是在濱河造成了極大的恐慌甫贯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件看蚜,死亡現(xiàn)場離奇詭異叫搁,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門渴逻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疾党,“玉大人,你說我怎么就攤上這事惨奕⊙┪唬” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵梨撞,是天一觀的道長雹洗。 經(jīng)常有香客問我,道長卧波,這世上最難降的妖魔是什么时肿? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮港粱,結(jié)果婚禮上螃成,老公的妹妹穿的比我還像新娘。我一直安慰自己啥容,他們只是感情好锈颗,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咪惠,像睡著了一般击吱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上遥昧,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天覆醇,我揣著相機與錄音,去河邊找鬼炭臭。 笑死永脓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鞋仍。 我是一名探鬼主播常摧,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼威创!你這毒婦竟也來了落午?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤肚豺,失蹤者是張志新(化名)和其女友劉穎溃斋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吸申,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡梗劫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年享甸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梳侨。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛉威,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猫妙,到底是詐尸還是另有隱情瓷翻,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布割坠,位于F島的核電站,受9級特大地震影響妒牙,放射性物質(zhì)發(fā)生泄漏彼哼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一湘今、第九天 我趴在偏房一處隱蔽的房頂上張望敢朱。 院中可真熱鬧,春花似錦摩瞎、人聲如沸拴签。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚓哩。三九已至,卻和暖如春上渴,著一層夾襖步出監(jiān)牢的瞬間岸梨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工稠氮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留曹阔,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓隔披,卻偏偏與公主長得像赃份,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奢米,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容