【发布时间】:2019-04-02 10:28:25
【问题描述】:
我有一个数据框foo.df,其中包含一个变量,该变量只是一个由多个子字符串组成的非常长的字符串。此外,我有匹配部分字符串的字符向量。数据框中的变量示例:
foo.df$var[1]
[1] "Peter Paul SmithLabour3984234.55%Hans NicholsConservative103394.13%Turnout294834.3%
现在是字符向量的示例:
head(candidates)
[1] "Peter Paul Smith" "Hans Nichols" "Denny Gross" "Walter Mittens"
[5] "Charles Butt" "Mitch Esterhazy"
我想创建一个变量foo.df$candidate1,其中包含出现在字符串中的第一个候选人的名称(即food.df$candidate1[1] 将是Peter Paul Smith)。我试图用grepl 来解决这个问题,但它不起作用,因为grepl 只使用candidates 的第一个条目。知道如何有效地做到这一点吗?
【问题讨论】:
-
gregexpr("%","Peter Paul SmithLabour3984234.55%Hans NicholsConservative103394.13%Turnout294834.3%")返回出现%的每个位置。您可以将它与 base R 一起使用来提取您想要的内容。或者,stringr包具有处理字符串子集、提取、替换等的预制函数。