R 从整个数据帧中删除字符

R 从整个数据帧中删除字符,r,dataframe,R,Dataframe,我有一个包含不同列的数据框,某些列中的一些数据包含双引号,我想删除这些,例如: ID name value1 value2 "1 x a,"b,"c x" "2 y d,"r" z" 我想让它看起来像这样: ID name value1 value2 1 x a,b,c x 2 y d,r z 一个选项是使用apply()和gsub()函数删除所有

我有一个包含不同列的数据框,某些列中的一些数据包含双引号,我想删除这些,例如:

ID    name   value1     value2
"1     x     a,"b,"c     x"
"2     y     d,"r"       z"
我想让它看起来像这样:

ID    name   value1    value2
1     x      a,b,c      x
2     y      d,r        z

一个选项是使用
apply()
gsub()
函数删除所有双引号:

df <- data.frame(ID=c("\"1", "\"2"),
                 name=c("x", "y"),
                 value1=c("a,\"b,\"c", "d,\"r\""),
                 value2=c("x\"", "z\""))

df <- data.frame(apply(df, 2, function(x) {
                                  x <- gsub("\"", "", x)
                              })

> df
  ID name value1 value2
1  1    x  a,b,c      x
2  2    y    d,r      z

df我将使用
lappy
在列上循环,然后使用
gsub
替换

df1[] <- lapply(df1, gsub, pattern='"', replacement='')
df1
#  ID name value1 value2
#1  1    x  a,b,c      x
#2  2    y    d,r      z
数据
df1要删除
$
必须将其转义
\\\$
。请尝试:


df[]你用来把这个读入R的代码是什么?你可能只需要做一点小的调整试试
df[]@akrun,谢谢你!用方括号(
df[]@drammock-Thank's,the
[]
可以在我们想要为替换的值返回旧数据集的结构时使用。@zsad512我不知道您的数据。我文章中的示例数据适用于me@zsad512因为您的数据不同而对工作答案进行向下投票是不好的。首先,您需要了解元字符之间的差异,即
$
和一个非金属字符。只看一个答案,然后抱怨它不起作用,然后进行向下投票是绝对不公平的。@LDT你可以做
df1%变异(跨越(一切(),str\u remove\u all(,““))
双反斜杠,
\$
,是转义字符,而不是三反斜杠。
df1[] <- lapply(df1, type.convert)
df1 <-  structure(list(ID = c("\"1", "\"2"), name = c("x", "y"),
value1 = c("a,\"b,\"c", 
"d,\"r\""), value2 = c("x\"", "z\"")), .Names = c("ID", "name", 
"value1", "value2"), class = "data.frame", row.names = c(NA, -2L))