我有这个包含电视连续剧数据的数据
"!Next?" (1994) 1994-1995
"#1 Single" (2006) 2006-????
"#1 Single" (2006) {Cats and Dogs (#1.4)} 2006
"#1 Single" (2006) {Finishing a Chapter (#1.5)} 2006
"#1 Single" (2006) {Is the Grass Greener? (#1.1)} 2006
"1941" (2009) {(#1.9)} ????
"1942" (2011) 2011-????
我需要将其分为系列名称|制作日期|剧集名称|发布年份
剧集名称不均匀(可能存在也可能不存在),如上面的1942年(最后一个记录)的情况所示.Hence我将计算最后一个字符中的字符。
目前,我已完成name| production date|
但是在发布年份之前添加pipe(|)
有点单调乏味。
我想要一个像这样的输出
"!Next?" |1994| |1994-1995
"#1 Single" |2006| |2006-????
"#1 Single" |2006| {Cats and Dogs (#1.4)} |2006
"#1 Single" |2006| {Finishing a Chapter (#1.5)} |2006
"#1 Single" |2006| {Is the Grass Greener? (#1.1)} |2006
"1941" |2009| {(#1.9)} |????
"1942" |2011| |2011-????
我有前2个管道使用sub但无法获得第3个。 请有人帮忙
答案 0 :(得分:1)
您可以对这类任务使用反向引用(input
是要修改的字符串向量):
gsub(pattern = "([0-9?-]+$)",
replacement = "|\\1",
x = input)
基本上它会搜索位于数字末尾的最大字符串“?”和“ - ”;获取该字符串并通过前面的“|”替换其修改后的副本。