【发布时间】:2020-11-24 17:26:00
【问题描述】:
我有一个包含大量字符串列的数据框。 这些列中的每一列都包含我想拆分的三个部分的字符串。所以最后字符串列的总数将增加三倍。 这样做时,我还想通过将某些预定义的字符串附加到它们的原始列名来直接命名新列。
作为一个简化的例子
test_frame<-tibble(x=c("a1!","b2@","c3$"), y=c("A1$","G2%", NA))
x y
a1! A1$
b2@ G2%
c3$ NA
应该变成类似
x_letter x_number x_sign y_letter y_number y_sign
a 1 ! A 1 $
b 2 @ G 2 %
c 3 $ NA NA NA
字符串中元素的顺序始终相同。
真实的数据框有超过 100 个字符串列,所有这些列都可以使用分隔符分成三个部分。唯一的例外可能是缺少字符串的行。 我研究了 str_split_fixed()、strsplit() 和separate() 以及应用函数的组合,但不知道如何在循环遍历列的同时直接命名列。
这里有什么简单的方法?
【问题讨论】: