我将这种数据放入字符矩阵的列中。我想在列V1中应用一些grep函数来检测“OK”,“ERROR”或“NOISE”字符串,并将它们保存到新列中。
来自img 1
"";"V1"
"img1";"19293.jpg : H344.8º : OK"
"img1";"19293.jpg : 9.6Kt : OK"
"img1";"19293.jpg : 44º31.449H'N : ERROR"
"img1";"19293.jpg : 2º31.238'W : OK"
"img2";"19294.jpg : H344.8º : OK"
"img2";"19294.jpg : 9.6Kt : OK"
"img2";"19294.jpg : 44º31.449H'N : NOISE"
"img2";"19294.jpg : 2º31.238'W : OK"
"img3";"19295.jpg : H344.8º : OK"
"img3";"19295.jpg : 9.6Kt : OK"
"img3";"19295.jpg : 44º31.449H'N : OK"
"img3";"19295.jpg : 2º31.238'W : OK"
...
直到img n
谢谢!
答案 0 :(得分:2)
试试这个:
data$extracted <- gsub('^.*(OK|ERROR|NOISE)$|^.*$', '\\1', data$V1)
这可以确保保留您搜索的字符串,否则将使用空字符串。
答案 1 :(得分:1)
使用
读入您的数据文件x <- read.table( "data.dat", sep = ";", header = TRUE )
添加最后一个单词x$v1
library( stringr )
x$extr <- word( x[,2], -1 )
x
X V1 extr
1 img1 19293.jpg : H344.8º : OK OK
2 img1 19293.jpg : 9.6Kt : OK OK
3 img1 19293.jpg : 44º31.449H'N : ERROR ERROR
4 img1 19293.jpg : 2º31.238'W : OK OK
5 img2 19294.jpg : H344.8º : OK OK
6 img2 19294.jpg : 9.6Kt : OK OK
7 img2 19294.jpg : 44º31.449H'N : NOISE NOISE
8 img2 19294.jpg : 2º31.238'W : OK OK
9 img3 19295.jpg : H344.8º : OK OK
10 img3 19295.jpg : 9.6Kt : OK OK
11 img3 19295.jpg : 44º31.449H'N : OK OK
12 img3 19295.jpg : 2º31.238'W : OK OK