簡體   English   中英

R 數據框組織

[英]R data frame organization

我是一名初級數據科學家,在 NCAA 橄欖球計划中工作,試圖學習 R。我們在練習期間記錄重復測量數據,需要對其進行組織然后分析。 我有這個示例數據集,由於“活動”列中的變化/錯別字,我在分析時遇到了麻煩。 我需要一種方法來重命名/組織數據框中的活動。

原始數據集如下所示:

位置 活動 最大速度(英里/小時)
寫字樓 特別小組 1 20
寫字樓 特別小組1 19
寫字樓 特別小組1 18
寫字樓 特別小組2 13
寫字樓 ST 2 16
寫字樓 聖 2 19
寫字樓 1隊 12
寫字樓 1隊 20
寫字樓 1隊 23
寫字樓 團隊 2 21
寫字樓 團隊 2 10
寫字樓 團隊 2 3
寫字樓 3隊 21
寫字樓 3隊 11
寫字樓 3隊 16
寫字樓 印地 1 20
寫字樓 印地 2 21
寫字樓 印地3 22

我需要它看起來像這樣:

位置 活動 最大速度(英里/小時) 活動_類別
寫字樓 特別小組 1 20 特別小組
寫字樓 特別小組1 19 特別小組
寫字樓 特別小組1 18 特別小組
寫字樓 特別小組2 13 特別小組
寫字樓 ST 2 16 特別小組
寫字樓 聖 2 19 特別小組
寫字樓 1隊 12 團隊
寫字樓 1隊 20 團隊
寫字樓 1隊 23 團隊
寫字樓 團隊 2 21 團隊
寫字樓 團隊 2 10 團隊
寫字樓 團隊 2 3 團隊
寫字樓 3隊 21 團隊
寫字樓 3隊 11 團隊
寫字樓 3隊 16 團隊
寫字樓 印地 1 20 印地
寫字樓 印地 2 21 印地
寫字樓 印地3 22 印地

通過這種方式,我可以在每種類型的活動中分析因變量“Max_velocity”的平均值。 我寧願不制作單獨的代碼行來糾正“活動”列中的每個錯字。 我認為這可以用循環來完成,但我是初學者,不知道從哪里開始。 我將不勝感激任何幫助使其成為一個簡單的修復。

這是解決您問題的另一種方法

library(stringr)

df$Activity_Catagory <- str_to_title(df$Activity) |> 
                          str_remove(" \\d") |> 
                          str_replace("St", "Special Team")



#    Position       Activity Max_Velocity (mph) Activity_Catagory
# 1        WR Special Team 1                 20      Special Team
# 2        WR special team 1                 19      Special Team
# 3        WR Special team 1                 18      Special Team
# 4        WR special Team 2                 13      Special Team
# 5        WR           ST 2                 16      Special Team
# 6        WR           St 2                 19      Special Team
# 7        WR         team 1                 12              Team
# 8        WR         team 1                 20              Team
# 9        WR         team 1                 23              Team
# 10       WR         team 2                 21              Team
# 11       WR         team 2                 10              Team
# 12       WR         team 2                  3              Team
# 13       WR         team 3                 21              Team
# 14       WR         team 3                 11              Team
# 15       WR         team 3                 16              Team
# 16       WR         Indy 1                 20              Indy
# 17       WR         indy 2                 21              Indy
# 18       WR         INDY 3                 22              Indy

您可能需要首先根據您的數據定義規則。 哪些值會被稱為“Special Team”,哪些會被稱為“Team”等等。

基於示例共享我們可以做不區分大小寫的模式匹配與grepl使用和列表的條件case_when -

library(dplyr)

df %>%
  mutate(Activity_Category = case_when(grepl('Special Team', Activity, ignore.case = TRUE) | 
                                       grepl('ST ', Activity, ignore.case = TRUE) ~ 'Special Team', 
                                       grepl('Team', Activity, ignore.case = TRUE) ~ 'Team', 
                                       grepl('Indy', Activity, ignore.case = TRUE) ~ 'Indy'))

#   Position       Activity Max_Velocity..mph. Activity_Category
#1        WR Special Team 1                 20      Special Team
#2        WR special team 1                 19      Special Team
#3        WR Special team 1                 18      Special Team
#4        WR special Team 2                 13      Special Team
#5        WR           ST 2                 16      Special Team
#6        WR           St 2                 19      Special Team
#7        WR         team 1                 12              Team
#8        WR         team 1                 20              Team
#9        WR         team 1                 23              Team
#10       WR         team 2                 21              Team
#11       WR         team 2                 10              Team
#12       WR         team 2                  3              Team
#13       WR         team 3                 21              Team
#14       WR         team 3                 11              Team
#15       WR         team 3                 16              Team
#16       WR         Indy 1                 20              Indy
#17       WR         indy 2                 21              Indy
#18       WR         INDY 3                 22              Indy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM