我在小标题中有许多因子向量。这是一项调查,所以级别是字母代码。
调查工具结合了在调查时选择的字母顺序(从答题器中选择),根据问题的不同,该顺序可能有用也可能无效。
我正在寻找一个整齐的函数或一个过程,通过该过程可以用匹配的字母折叠因子水平。 即,“ B,A” =“ A,B”,并且折叠为“ A,B”。
或者“ B,C,A” =“ C,A,B” =“ A,B,C”或字母A,B,C的任意组合。在一个因子水平上,我最多可以包含5个字母,因此它很快就会变得复杂。
我应该将其转换为字符串,然后使用stringi或grepl将其分成多列吗?我有很多专栏文章,所以我正在寻找一个光滑的解决方案。有任何想法吗?
这是我的数据中一个简单字符串的示例:
string<-c("E","C","A","A,B","A,B,C","B,A","C,A,B") %>% as.factor()
答案 0 :(得分:2)
用逗号分隔,排序,粘贴在一起。
string %>% strsplit(split = ",", fixed = TRUE) %>%
lapply(sort) %>%
sapply(paste, collapse = ",") %>%
factor
# [1] E C A A,B A,B,C A,B A,B,C
# Levels: A A,B A,B,C C E