在一个变量中包含一些字符序列的子集行

时间:2015-06-01 14:47:37

标签: r subset

我想在一个变量中对具有特定字符序列的行进行子集化。

例如,我想在变量历史记录中对至少有三个连续1(“111”;例如“01110”,“11111”,“01111”)的行进行子集化。

以下是一些示例数据:

id <- c(1,2,3,4,5,6,7,8,9,10)
history <- c("01110", "00001", "11111", "01111", "11011", "11100",
             "00001", "10101", "11011", "10111")
(df <- data.frame(id, history))
#    id history
# 1   1   01110
# 2   2   00001
# 3   3   11111
# 4   4   01111
# 5   5   11011
# 6   6   11100
# 7   7   00001
# 8   8   10101
# 9   9   11011
# 10 10   10111

在这种情况下,我想选择第1,3,4,6和10行。

1 个答案:

答案 0 :(得分:3)

尝试

from re import sub

input = request.POST['input']
sub_pattern = {'1':"sub('pattern1','txt1',input)",
               '2':"sub('pattern2','txt2',input)",
              }
eval(sub_pattern['1'])