簡體   English   中英

我如何重命名或為另一列中的列中的某些觀察值指定名稱

[英]how do i rename or assign name to some observations in a column in another column

我正在嘗試重新組合數據集中的一些行這是我下面的數據

地位 數數 價值
安比 20 ₦4,850
區域 11 ₦7,150
錯誤1 461 ₦106,909
錯誤2 659 ₦224,723
不成功 1 ₦100
未執行 1 ₦200
成功 43 ₦4,444
喂養 4 ₦2,111
10 ₦1,500

我想創建一個列並將其命名為 status2 然后在此 status2 中將是 Status 的重新組合,例如

在 Status 列中看到 ambi 和 area 的任何地方,在 Status2 列中將其歸類為 Failed

在 Status 列中看到 error1 和 error2 的任何地方,將其歸類為 Status column2 中的連接錯誤

在 Status 列中看到不成功和 not_executed 的任何地方,在 Status2 列中將其歸類為失敗

並將其他人留在 Status 列中,就像他們在新 Status2 列中的方式一樣,除了我提到的那些以重命名他們的名字

這是我的代碼 我的 R 知識有限

error>%
      mutate(Status_2 <-ifelse(error$Status %in% c(Ambi,Area,error1,error2,unuccessful,not 
executed),

我迷路了,我不知道我的代碼是否正確

這是我希望結果的樣子

地位 數數 價值 狀態2
安比 20 ₦4,850 失敗的
區域 11 ₦7,150 失敗的
錯誤1 461 ₦106,909 連接錯誤
錯誤2 659 ₦224,723 連接錯誤
不成功 1 ₦100 失敗
未執行 1 ₦200 失敗
成功的 43 ₦4,444 成功的
喂養 4 ₦2,111 喂養
10 ₦1,500

樣本數據

structure(list(Status = c("Ambi", "Area", "error1", "error2", 
"unuccessful", "not_executed", "Successfu", "feed", "Cut"), Count = c(20L, 
11L, 461L, 659L, 1L, 1L, 43L, 4L, 10L), Value = c("<U+20A6>4,850", 
"<U+20A6>7,150", "<U+20A6>106,909", "<U+20A6>224,723", "<U+20A6>100", 
"<U+20A6>200", "<U+20A6>4,444", "<U+20A6>2,111", "<U+20A6>1,500"
)), class = "data.frame", row.names = c(NA, -9L))

我認為您可以使用以下解決方案。 您的數據集中有一些拼寫錯誤,這就是為什么有些詞可能看起來不正確的原因。 這里我們使用case_when ,LHS 必須評估為邏輯向量,而 RHS 必須評估為相同類型的向量。 這里因為我們的Status_2向量是character類型,所以應該是我們case_when function 的 RHS。

library(dplyr)

df %>%
  mutate(Status_2 = case_when(
    Status %in% c("Ambi", "Area") ~ "Failed",
    Status %in% c("error1", "error2") ~ "connection error",
    Status %in% c("unuccessful", "not_executed") ~ "Failure",
    TRUE ~ Status
  ))

# A tibble: 9 x 4
  Status       Count Value    Status_2        
  <chr>        <int> <chr>    <chr>           
1 Ambi            20 <U+20A6>4,850   Failed          
2 Area            11 <U+20A6>7,150   Failed          
3 error1         461 <U+20A6>106,909 connection error
4 error2         659 <U+20A6>224,723 connection error
5 unuccessful      1 <U+20A6>100     Failure         
6 not_executed     1 <U+20A6>200     Failure         
7 Successfu       43 <U+20A6>4,444   Successfu       
8 feed             4 <U+20A6>2,111   feed            
9 Cut             10 <U+20A6>1,500   Cut   

如果您想使用ifelse

df %>%
  mutate(Status_2 = ifelse(Status %in% c("Ambi", "Area"), "Failed", 
                           ifelse(Status %in% c("error1", "error2"), "connection error",
                                  ifelse(Status %in% c("unuccessful", "not_executed"), 
                                         "Failure", Status))))

暫無
暫無

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

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