Gsubは文字列を間に保持します。

Gsubは文字列を間に保持します。

Rにデータセットがあります。

"Pppppp;Ccccccccc;Ooooo;My_string;Ggggggg;"

Mystringを維持したいです(以前とそれ以降のすべての内容が削除されるように)。私の文字列は常に3番目の ";"後ろに来ます。 Pppppp、Ccccc、Oooo、Gggggは行ごとに長さが異なります。

これを行う方法を知っていますか?

スキーマを生成しようとしています。

gsub(pattern="\\w[;]{3}", replacement="")

しかし、私はいつも文字列の代わりに ";"を削除します。

タブ区切りファイルではありません。

ありがとう

答え1

文字列は常に左から右に3番目の ";"次回は始まりますか?また、「タブ区切りファイルではありません」とはどういう意味ですか? Rでは、区切り文字 ";"を使用してテーブルにインポートできます。それは次のとおりです。

tmp <- read.table("your.file.txt", sep=";", header=F)

次に、4番目の列(つまり3番目の「;」の次の列)を選択します。
my_strings <- tmp$V4

Rを使うことです。

答え2

あなたの質問を理解したかどうかはわかりませんが、次のようにすれば目標を達成できると思います。

 awk -F ";" '{OFS=";";print $1,$2,$3,$4}' input_file

関連情報