如何在 R 資料框列中將一週中的日期轉換為數字?


為了將 R 資料框列中的一週中的日期轉換為數字,我們需要透過定義工作日作為級別將該列轉換為因子,然後將該列讀取為整數。

如果我們在轉換過程中提供了正確的工作日順序,則星期一將轉換為 1。檢視下面的示例以瞭解如何操作。

示例 1

以下程式碼片段建立了一個示例資料框 -

Week_Days<-
sample(c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"),20,replace=TRUE)
df1<-data.frame(Week_Days)
df1

建立了以下資料框

   Week_Days
1     Friday
2     Monday
3    Tuesday
4   Saturday
5   Thursday
6    Tuesday
7     Monday
8   Thursday
9   Thursday
10    Friday
11  Thursday
12    Sunday
13  Thursday
14   Tuesday
15 Wednesday
16    Sunday
17    Friday
18 Wednesday
19    Sunday
20  Thursday

要將 df1 中的 Week_Days 轉換為數字並在上面建立的資料框的不同列中讀取它們,請將以下程式碼新增到上面的程式碼片段中 -

Week_Days<-
sample(c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"),20,replace=TRUE)
df1<-data.frame(Week_Days)
df1$Days_Number<-
as.integer(factor(df1$Week_Days,levels=c("Monday","Tuesday","Wednesday","Thursd
ay","Friday","Saturday","Sunday"),ordered=TRUE))
df1

建立了以下資料框

  Week_Days  Days_Number
1     Friday          5
2     Monday          1
3    Tuesday          2
4   Saturday          6
5   Thursday          4
6    Tuesday          2
7     Monday          1
8   Thursday          4
9   Thursday          4
10    Friday          5
11  Thursday          4
12    Sunday          7
13  Thursday          4
14   Tuesday          2
15 Wednesday          3
16    Sunday          7
17    Friday          5
18 Wednesday          3
19    Sunday          7
20  Thursday          4

示例 2

以下程式碼片段建立了一個示例資料框 -

Time<-
sample(c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"),20,replace=TRUE)
df2<-data.frame(Time)
df2

建立了以下資料框

       Time
1    Tuesday
2   Thursday
3     Monday
4    Tuesday
5   Thursday
6     Sunday
7   Saturday
8     Monday
9   Thursday
10  Saturday
11 Wednesday
12    Monday
13 Wednesday
14    Sunday
15    Sunday
16    Sunday
17    Sunday
18 Wednesday
19  Saturday
20    Friday

要將 df2 中的時間轉換為數字並在上面建立的資料框的不同列中讀取它們,請將以下程式碼新增到上面的程式碼片段中 -

Time<-
sample(c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"),20,replace=TRUE)
df2<-data.frame(Time)
df2$Day_Number<-
as.integer(factor(df2$Time,levels=c("Monday","Tuesday","Wednesday","Thursday","
Friday","Saturday","Sunday"),ordered=TRUE))
df2

輸出

如果您將以上所有給定的程式碼片段作為單個程式執行,它將生成以下輸出 -

       Time Day_Number
1    Tuesday        2
2   Thursday        4
3     Monday        1
4    Tuesday        2
5   Thursday        4
6     Sunday        7
7   Saturday        6
8     Monday        1
9   Thursday        4
10  Saturday        6
11 Wednesday        3
12    Monday        1
13 Wednesday        3
14    Sunday        7
15    Sunday        7
16    Sunday        7
17    Sunday        7
18 Wednesday        3
19  Saturday        6
20    Friday        5

更新於: 2021-11-01

1K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告