簡體   English   中英

在R中使用linux系統命令刪除特殊字符

[英]Using linux system commands in R to remove special characters

我正在嘗試在R中使用linux系統命令清除文件

我想使用一個命令來除去文件分隔符(管道分隔符)之外的特殊字符

在下面的示例中,我試圖擺脫的是斜杠和其他引號。

1234|"PJDG"|"CHOCOLATES"|"CHOCOLATE CAKE"
1256|"GADG"|"CAKE \"HA"|"SPECIAL \"HAPPY CHRISTMAS\""
7657|"ASGD"|"WINE"|"RED WINE"
6777|"DAG"|"FRUIT"|"APPLES/LOOSE"

我使用了下面的命令,但是它似乎並未刪除字符。

sed's / \\“?// g'input_file.txt> output_file.txt;

如果文件x.txt看起來像這樣

cat(readLines("x.txt"), sep = "\n")
# 1234|"PJDG"|"CHOCOLATES"|"CHOCOLATE CAKE"
# 1256|"GADG"|"CAKE \"HA"|"SPECIAL \"HAPPY CHRISTMAS\""
# 7657|"ASGD"|"WINE"|"RED WINE"
# 6777|"DAG"|"FRUIT"|"APPLES/LOOSE"

然后您可以在system()使用sed ,就像這樣

system("sed -e 's|[\\\"]||g' x.txt")
# 1234|PJDG|CHOCOLATES|CHOCOLATE CAKE
# 1256|GADG|CAKE HA|SPECIAL HAPPY CHRISTMAS
# 7657|ASGD|WINE|RED WINE
# 6777|DAG|FRUIT|APPLES/LOOSE

您可以將其寫入文件。 或者,如果您想返回R向量,請在調用中添加intern = TRUE

R系統為此具有自己的功能,而不必使用系統。 看看subgsub 使用readLines讀取文件,通過subgsub對其進行編輯,然后將結果結構保存回單獨的文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM