R:提取字符串中出现的第n个数字

时间:2013-12-13 02:15:51

标签: r

我有一个名为df的R数据框,在df的第1行和第2列,我有以下string条目:

 df[1,2]="[127512, 27455, 70464, 257686, 127094, 225910, 225910, 257686, 257686, 257686, 
 127094, 10000, 10000, 10000, 10000, 1936, 1936, 1936, 1936, 1936, 1936, 78336, 127512, 
 27455, 70464, 257686, 127094, 225910, 225910, 257686, 257686, 257686, 127094, 10000, 
 10000, 10000, 10000, 1936, 1936, 1936, 1936, 1936, 1936, 78336]"

如何在这个字符串中提取第四个数字(在我们的例子中是257686)? regexp我不太好....谢谢。

2 个答案:

答案 0 :(得分:3)

在初稿中错过了[[1]],因此根据@thelatemail

的建议进行了修改
strsplit(df[1,2],",", fixed=TRUE)[[1]][4]

如下面的flodel评论,请小心处理第一个和最后一个元素。快速修复可能会将"["替换为不需要第三方库的""

答案 1 :(得分:3)

Ananta的解决方案有些令人不满意:

  1. 它包含一个空格(如果你制作分割模式", "可以修复),但更重要的是
  2. 如果不是您要求第一个项目的第四个项目,它将无效。答案将包括前导[字符。
  3. 由于您的数据字符串是有效的JSON,我会这样做:

    library(rjson)
    fromJSON(df[1, 2])[4]
    

    也可用于提取第一个项目。