如何在R資料框中查詢每列的值的log2,即使某些列是分類變數?


要在R資料框中查詢每列值的log2,即使某些列是分類變數,我們可以按照以下步驟操作:

  • 首先,建立一個數據框。

  • 然後,使用plyr包中的numcolwise函式來查詢log2,即使某些列是分類變數。

示例

建立資料框

讓我們建立一個如下所示的資料框:

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
Score<-sample(1:50,25)
Demand<-sample(1:100,25)
df<-data.frame(Level,Group,Score,Demand)
df

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):

   Level  Group  Score Demand
1  high   first   38    86
2  medium second  44   100
3  medium first   33    68
4  high   first   25    24
5  low    first   34    62
6  low    first   43    55
7  low    first   35    42
8  high   second  21    92
9  low    second  27    78
10 medium first   36    66
11 low    first    2    22
12 high   first   42    40
13 high   second  40    46
14 low    first   28    70
15 medium first   23    53
16 medium first   49    58
17 low    first    6    31
18 low    first   18    79
19 medium second  50    10
20 low    first   31    27
21 high   second  10    43
22 low    second   4    23
23 medium second  20    87
24 high   first   12    69
25 high   second  15     9

查詢log2,即使某些列是分類變數

使用plyr包中的numcolwise函式在資料框df中查詢每個數值列的log2:

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
Score<-sample(1:50,25)
Demand<-sample(1:100,25)
df<-data.frame(Level,Group,Score,Demand)
library(plyr)
numcolwise(log2)(df)

輸出

    Score    Demand
1  5.247928 6.426265
2  5.459432 6.643856
3  5.044394 6.087463
4  4.643856 4.584963
5  5.087463 5.954196
6  5.426265 5.781360
7  5.129283 5.392317
8  4.392317 6.523562
9  4.754888 6.285402
10 5.169925 6.044394
11 1.000000 4.459432
12 5.392317 5.321928
13 5.321928 5.523562
14 4.807355 6.129283
15 4.523562 5.727920
16 5.614710 5.857981
17 2.584963 4.954196
18 4.169925 6.303781
19 5.643856 3.321928
20 4.954196 4.754888
21 3.321928 5.426265
22 2.000000 4.523562
23 4.321928 6.442943
24 3.584963 6.108524
25 3.906891 3.169925

更新於:2021年11月10日

310 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.