R語言 實現list類型數據轉換

例如:

> a=list(c('232','34'),c('good','bad'),c(1,5))
> a
[[1]]
[1] "232" "34" 

[[2]]
[1] "good" "bad" 

[[3]]
[1] 1 5
> names(a)=c('d','w','j')
> a
$d
[1] "232" "34" 

$w
[1] "good" "bad" 

$j
[1] 1 5

> 

list數據類型取值用[[ ]],如:

> a[[1]]
[1] "232" "34" 
> a[1]
$d
[1] "232" "34" 

> 

現將list類型轉換成常用的數據類型:

1、unlist

> unlist(a)
  d1   d2   w1   w2   j1   j2 
 "232"  "34" "good" "bad"  "1"  "5" 
> 

可通過列名取值。

2、do.call

可使用do.call(rbind,x)和do.call(cbind,x)函數轉換成矩陣:

> do.call(rbind,a)
 [,1]  [,2] 
d "232" "34" 
w "good" "bad"
j "1"  "5" 
> do.call(cbind,a)
   d   w   j 
[1,] "232" "good" "1"
[2,] "34" "bad" "5"

補充:將list轉換為numeric_R語言

1.場景:

從excel復制格式化後的數據到剪貼板,在R中使用read.table()讀入剪貼板數據,

data = read.table('clipboard', header = F)
 
  V1
1 91
2 79
3 91
4 84
5 85
6 91
7 92
8 76
9 96
10 93
 
mode(data)
[1] "list"

由於data不是numeric,需要轉為numeric才能繼續進行分析,如果直接進行 hist(data),則報錯,“Error in hist.default(data) : ‘x’必需為數值”

2.使用unlist()將list轉換為numeric

data = unlist(data)
 
 V11 V12 V13 V14 V15 V16 V17 V18 V19 V110 V111 V112 V113 V114 V115 V116 V117 V118 V119 V120 V121 V122
 91  79  91  84  85  91  92  76  96  93  90  93  76  87  89  98  82  89  91  87  87  90
V123 V124 V125 V126 V127 V128 V129 V130 V131 V132 V133 V134 V135 V136 V137 V138 V139 V140 V141 V142 V143 V144
 89  83  96  87  97  88  92  96  89  87  86  95  89  91  94  89  89  91  84  88  90  80
V145 V146 V147 V148 V149 V150 V151 V152 V153 V154 V155 V156 V157 V158 V159 V160 V161 V162 V163 V164 V165
 88  86  92  82  91  89  90  85  89  88  89  85  89  86  82  91  96  87  90  91  89

檢查data的數據類型

mode(data)
[1] "numeric"

3. 對轉換後的數據進行可視化

hist(data)

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: