R 将特定子字符串检测为大字符串
我把这类数据放在字符矩阵的一列中。我想对V1列应用一些grep函数来检测“OK”、“ERROR”或“NOISE”字符串,并将它们保存到一个新列中 来自img 1R 将特定子字符串检测为大字符串,r,R,我把这类数据放在字符矩阵的一列中。我想对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.j
"";"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
谢谢 试试这个:
data$extracted <- gsub('^.*(OK|ERROR|NOISE)$|^.*$', '\\1', data$V1)
data$extracted用
x <- read.table( "data.dat", sep = ";", header = TRUE )
我想你指的是三个新的列,分别代表OK、ERROR和NOISE?我看你是新来的。当您发布数据时,请确保其他人可以将该数据粘贴到R中并运行它。使用dput
(或dput(头(x,10))
)确保我们可以轻松运行您的数据。是的,我是新来的。。。好的,下次我会尽量这样做。谢谢!;)
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