在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;
R系统有自己的功能,不需要使用系统。看看 sub
、gsub
。使用 readLines
读取您的文件,通过 sub
或 gsub
对其进行编辑,然后将生成的结构保存回单独的文件。
如果文件 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
您可以将其写入文件。或者如果你想 return 一个 R 向量,添加 intern = TRUE
到调用
我正尝试在 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;
R系统有自己的功能,不需要使用系统。看看 sub
、gsub
。使用 readLines
读取您的文件,通过 sub
或 gsub
对其进行编辑,然后将生成的结构保存回单独的文件。
如果文件 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
您可以将其写入文件。或者如果你想 return 一个 R 向量,添加 intern = TRUE
到调用