如果R資料框中某些列是分類列,如何查詢每列值的自然對數?


如果R資料框中某些列是分類列,要查詢每個值的自然對數,我們可以按照以下步驟操作:

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

  • 然後,使用plyr包中的numcolwise函式,如果某些列是分類列,則查詢自然對數。

示例

建立資料框

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

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  low    first  32     83
2  medium first  21     97
3  medium first  30     46
4  medium first  25     99
5  medium second 10     63
6  low    second 11      2
7  medium first  17     98
8  low    first   8     81
9  high   second 23     23
10 high   first  16     68
11 high   second 33     60
12 medium second  9     52
13 medium second  6     56
14 medium first  45     40
15 low    second 31     14
16 low    first  26     72
17 high   second 18     77
18 medium first  43     85
19 medium first  34     73
20 medium second 12     64
21 low    second 39     29
22 medium first  36     37
23 low    second 15     33
24 medium second 14     57
25 low    second 37     35

如果某些列是分類列,則查詢自然對數

使用plyr包中的numcolwise函式來查詢資料框df中數值列中每個值的自然對數:

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(log)(df)

輸出

    Score    Demand
1  3.465736 4.4188406
2  3.044522 4.5747110
3  3.401197 3.8286414
4  3.218876 4.5951199
5  2.302585 4.1431347
6  2.397895 0.6931472
7  2.833213 4.5849675
8  2.079442 4.3944492
9  3.135494 3.1354942
10 2.772589 4.2195077
11 3.496508 4.0943446
12 2.197225 3.9512437
13 1.791759 4.0253517
14 3.806662 3.6888795
15 3.433987 2.6390573
16 3.258097 4.2766661
17 2.890372 4.3438054
18 3.761200 4.4426513
19 3.526361 4.2904594
20 2.484907 4.1588831
21 3.663562 3.3672958
22 3.583519 3.6109179
23 2.708050 3.4965076
24 2.639057 4.0430513
25 3.610918 3.5553481

更新於: 2021年11月9日

180 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.