我有一个字符串在一行我的框架df,有数字和字母后的最后一个下划线。这些字母可以是一个S T或Y与数字出现在他们之后表示磷酸化发生在蛋白质,可以有1到9套。我希望该字符串分裂,如果有一个以上的字母和其他列复制。例如,
# Define the input strings
string1 <- "A01235_414_429_2_2_Y414T418S687"
string2 <- "C2"
string3 <- "C3"
# Create the dataframe
df <- data.frame(Column1 = string1, Column2 = string2, Column3 = string3)
# Print the dataframe
print(df)
# And the new code should yield;
print(new_df)
Column1 Column2 Column3
1 A01235_414_429_2_2_Y414 C2 C3
2 A01235_414_429_2_2_T418 C2 C3
3 A01235_414_429_2_2_S687 C2 C3
字符串
2条答案
按热度按时间zhte4eai1#
下面是一个
dplyr
/tidyr
方法:字符串
使用
tidyr::separate_rows
也是可能的(需要更多的正则表达式和更多的工作),但是由于没有明确的定义,我认为它的代码量和上面的差不多(如果不是更多的话)。regmatches(last, gregexpr(..))
位对最后一个_
之后的子串进行操作,并且 * 仅 * 该部分;其目的是提取以[TYS]
开头并后跟一个或多个数字的任何子串。查看第一个
mutate(.)
之后的结果,注意列表列(不是逗号分隔的字符串列),然后理解下面的unnest
和mutate
如何清理数据,可能会提供信息。型
hfsqlsce2#
你可以尝试
字符串
这给
型