大きなデータセット(〜1500行)で作業していますが、データセットを作成したときに、 1つの長い文字列にまとめられます。文字列を3つの列に区切ります:テキスト、数値、テキスト
識別文字列は、 "Polygon_Name"というラベルの列にあります。私はこの列を保持し、この列の文字列値を3つの列に分割したいと思います。
たとえば、「Polygon_Name」セルにCanker14Bなどの番号が埋め込まれている場合は、次の列が表示されます。(1)元のPolygon_Name、(2)前のすべてのテキスト番号、(3)番号、(4)番号の後のすべてのテキスト。私がしました
:
私のデータの小さなサブセット:
df <- structure(list(Bolt_ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L), .Label = "N1T.3.4.15.0.C", class = "factor"),
Polygon_Name = structure(c(10L, 1L, 9L, 6L, 3L, 7L, 2L, 8L,
4L, 5L), .Label = c("C", "Canker15B", "Canker15Left", "Canker15Right",
"Canker16", "Canker17", "CankS15B", "CankS16", "CankS17",
"S"), class = "factor"), Measure = c(19.342, 25.962, 0.408,
0.008, 0.074, 0.41, 0.011, 0.251, 0.056, 0.034)), .Names = c("Bolt_ID",
"Polygon_Name", "Measure"), row.names = c(1L, 2L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 11L), class = "data.frame")
電流出力:
究極出力に(私はこれを手動で構築されました)抽出する方法を考え出した次のコード番号:
library(stringr)
regexp <- "[[:digit:]]+"
df$Poly_Num <- str_extract(df$Polygon_Name, regexp)
しかし、私はまだ数字の前後にテキストを引き出すのに苦労しています。いかなる考えも認められるだろう。
非常にきれいな短いオプションを使用できます。私はこの解決策がどの列にも「NA」を置かないことも好きです。 – KKL234