使用R中的str_match检查由“_”分隔的数字

时间:2015-06-22 06:45:59

标签: r dataframe stringr

我正在尝试使用我在网上找到的R中的代码。它的数据框model_data_frame

model_data_frame
          Matchup Win
1  2012_1140_1233   1
2  2012_1290_1443   0
3  2012_1143_1378   0
4  2012_1249_1436   0

该人然后设置

pattern <- "[A-Z]_([0-9]{3})_([0-9]{3})"

然后

teamIDs <- as.data.frame(str_match(model_data_frame$Matchup, pattern))
teamIDs <- teamIDs[ , c(2,3)]

我猜测teamIDs的结果应该类似于

teamIDs
    V1   V2  
1  1140 1233
2  1290 1443 
3  1143 1378 
4  1249 1436
而不是它看起来像

 teamIDs
    V1   V2  
1  <NA> <NA>
2  <NA> <NA> 
3  <NA> <NA> 
4  <NA> <NA>

我猜它是因为pattern <- "[A-Z]_([0-9]{3})_([0-9]{3})"错了。我应该把它改成什么?

1 个答案:

答案 0 :(得分:0)

有一种比依赖正则表达式更简单的方法。 使用df <- read.table("clipboard", header = T) teamIDs <- t(as.data.frame(strsplit(as.character(df$Matchup),"_")))[,2:3]

public string GetParagraphs(string html, int numberOfParagraphs)
{
    const string paragraphSeparator = "</p>";
    var paragraphs = html.Split(new[] { paragraphSeparator }, StringSplitOptions.RemoveEmptyEntries);
    return string.Join("", paragraphs.Take(numberOfParagraphs).Select(paragraph => paragraph + paragraphSeparator));
}