【发布时间】:2021-06-28 14:38:02
【问题描述】:
让我们考虑以下字符串向量:
x <- c("B", "C_small", "A", "B_big", "C", "A_huge", "D", "A_big", "B_tremendous")
如您所见,此向量中有某些以相同开头的字符串,例如"B", "B_big".
我最终想要的是一个以这样的布局排序的向量,即所有具有相同开头的字符串都应该彼此相邻。但是字母顺序应该保持不变("B" 应该是第一个,"C" 第二个等等)。让我举个例子来澄清一下:
简单来说,我想以向量结尾:
"B", "B_big", "B_tremendous", "C_small", "C", "A", "A_huge", "A_big", "D"
我为获得此向量所做的工作:我从左侧读取并看到"B",因此我正在查看所有其他以相同开头的向量并将其放在"B" 的右侧。然后是"C",所以我正在查看所有剩余的字符串并将所有字符串以"C" 开头,例如"C_small" 以此类推。
我不知道该怎么做。我几乎可以肯定 gsub 函数可以用来处理这个结果,但是我不确定如何将它与这个搜索和替换结合起来。你能帮我做吗?
【问题讨论】:
-
将向量转化为因子会是一个解决方案吗?
-
您没有根据后缀明确提及(附加)排序,但answer by @Damian 让我感到奇怪。你能澄清一下吗?如果有更复杂的情况,也许我的答案需要调整......干杯。