我有一個資料集,用于捕獲兩個電子學習模塊的資料。電子學習模塊用由數字和字母組成的代碼表示。例如 1A21 和 2N34。
使用以下代碼,我可以創建一個列,在其中為模塊代碼命名。讓我作為一個人更容易理解。
df$Module <- ifelse(grepl("1A21", df$ModuleCode), "R-101", "R-201")
代碼就像一個魅力。但是,我很好奇,如果您的資料框開始捕獲兩個以上電子學習模塊的資料,它會如何作業?怎么解決這個問題?
如果這個問題是重復的,我提前道歉。
uj5u.com熱心網友回復:
好的,讓我們假設有 3 個代碼:1A21、2N34、3D56,名稱為:“R-101”、“R-201”、“R-301”。
df$Module <- ifelse(grepl("1A21", df$ModuleCode), "R-101",
ifelse(grepl("2N34", df$ModuleCode), "R-201", "R-301")
因此,我們插入一個新的 ifelse 級別而不是第三個引數。
uj5u.com熱心網友回復:
我不明白你的重命名邏輯。但是按照我的示例,您可以為每個 ModuleCode 分配任何模塊名稱。
library(tidyverse)
df <- tibble::tibble(ModuleCode = c("1A21", "2N34", "3P04"))
df
# A tibble: 3 x 1
ModuleCode
<chr>
1 1A21
2 2N34
3 3P04
df %>% dplyr::mutate(Module = dplyr::case_when(
grepl("1A21",ModuleCode) ~ "R-101",
grepl("2N34", ModuleCode) ~ "R-201",
grepl("3P04", ModuleCode) ~ "R-301"
))
# A tibble: 3 x 2
ModuleCode Module
<chr> <chr>
1 1A21 R-101
2 2N34 R-201
3 3P04 R-301
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325700.html
上一篇:在RShiny中,如何對資料幀的指定列求和并將結果輸出到表格中?
下一篇:按選擇特定列的行求和
