[英]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.