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))