[英]Assign value to combination of two column values in R
我正在尋找一種更簡單的方法來將唯一值分配給來自兩列的字符串值的組合,其中:
這是一個最小的解決方案示例,該解決方案在 colA和colB包含數字的情況下適用:
set.seed(3)
a <- sample(1:5, 20, replace = T)
b <- sample(1:5, 20, replace = T)
df<- data.frame(a, b)
library(dplyr)
df<- df %>%
filter(a!=b) %>%
mutate(abCombination = a*b) %>%
arrange(abCombination)
df$abFactor <- factor(df$abCombination, labels = c("combination 1", "combination 2",
"combination 3", "combination 4",
"combination 5", "combination 6",
"combination 7"))
我認為這是一項容易的任務,但無法想到:
假設我們正在尋找一種適用於numeric/non-numeric
的更通用的方法,一種選擇是使用pmin/pmax
paste
元素,然后執行factor
df %>%
filter(a != b) %>%
mutate(abCombination = sprintf('%s %s', pmin(a, b), pmax(a, b))) %>%
arrange(abCombination) %>%
mutate(abFactor = factor(abCombination, levels = unique(abCombination),
labels = paste('Combination', seq_len(n_distinct(abCombination))) ))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.