r - 提取字符和空格之间的元素

标签 r

我很难在 / 之间提取元素和一个 black space .当我有两个字符时,我可以这样做 <>例如,但空间正在抛出我。我想要在基本 R 中执行此操作的最有效方法,因为这将应用于数千个向量。

我想转这个:

x <- "This/DT is/VBZ a/DT short/JJ sentence/NN consisting/VBG of/IN some/DT nouns,/JJ verbs,/NNS and/CC adjectives./VBG"

此:
 [1] "DT"  "VBZ" "DT"  "JJ"  "NN"  "VBG" "IN"  "DT"  "JJ"  "NNS" "CC"  "VBG"

编辑:

谢谢大家的回答。我追求速度,所以 Andres 代码胜出。 Dwin 的代码以最少的代码量获胜。你的德克是第二快的。 stringr 解决方案是最慢的(我认为它会是)并且不在基础中,但很容易理解(我认为这确实是 st​​ringr 包的意图,因为这似乎是 Hadley 对大多数事情的哲学。

感谢您的帮助。再次感谢。

我想我会包括基准测试,因为这将是 lapplied超过数千个向量:
    test replications elapsed relative user.self sys.self
1 ANDRES        10000    1.06 1.000000      1.05        0
3   DIRK        10000    1.29 1.216981      1.20        0
2   DWIN        10000    1.56 1.471698      1.43        0
4 FLODEL        10000    8.46 7.981132      7.70        0

最佳答案

类似但更简洁:

#1- Separate the elements by the blank space

    y=unlist(strsplit(x,' '))

#2- extract just what you want from each element:

    sub('^.*/([^ ]+).*$','\\1',y)

开始和结束 anchor 字符的位置
^$分别,.*匹配任何字符。[^ ]+接受非空白字符。\\1是第一个标记字符

关于r - 提取字符和空格之间的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959145/

相关文章:

通过对数据子集进行排序来重新排序 x 轴变量

r - 涉及数字 (0) 值的加法

r - 将值从一个数据帧传输到另一个数据帧

R:使用重要性采样的蒙特卡罗积分

r - 如何使用 ggplot2 控制绘图的尺寸/大小

r - 带计数 R 的直方图

r - 当我在 R 中使用 is.na 时,向量返回 NA 而不是 FALSE

r - 当一个元素包含一个函数时,按元素名称合并并封装多个相似的列表

r - 如何在不返回 R 中所有级别的情况下从数据框的行和列中选择文本?

r - Shiny - 在数据表中选择记录时如何突出显示传单 map 上的对象?