[英]Remove quotes ("") from a data.frame in R
我有一个包含多个列的数据框,所有列都是字符 class。所有值都用双引号引起来,我想删除这些引号。
例子
df1 df2
"1203" "Name1"
"2304" "Name2"
数据框的print()
方法有一个选项quote=
,您可以将其设置为FALSE
:
print.data.frame(data.frame(x=c("Hello", "World")),
quote=FALSE)
# x
# 1 Hello
# 2 World
另请参阅?print.data.frame
(= 帮助)
编辑:
关于下面评论中的dput
ed 数据:
as.data.frame(sapply(df, function(x) gsub("\"", "", x)))
从 dplyr 1.0.0 开始,您可以使用purrr
中新的across
语法,这使得它对我们许多人来说更具可读性。
df <- structure(list(Col1 = c("\"2515\"", "\"3348\"", "\"3370\""), Col2 = c("\"06/25/2013\"", "\"12/26/2013\"", "\"12/30/2013\"" )), .Names = c("Col1", "Col2"), row.names = c(NA, 3L), class = "data.frame")
df
Col1 Col2
1 "2515" "06/25/2013"
2 "3348" "12/26/2013"
3 "3370" "12/30/2013"
df %>%
mutate(across(
everything(),
~ map_chr(.x, ~ gsub("\"", "", .x))
))
Col1 Col2
1 2515 06/25/2013
2 3348 12/26/2013
3 3370 12/30/2013
这种across
语法的优点是它不仅可读性好而且非常灵活。 您可以使用一系列其他方法来引用列,而不是所有列的everything()
,例如
Col1, Col2
)is.numeric
、 is.character
)starts_with("Col")
, contains("Col"
)LukeA 的回答将我的整个数据框转换为字符,所以我实现了这个修改,它只修改了字符类的列:
character_cols = which(sapply(x, class) == 'character')
for(i in 1:length(character_cols)) {
a = character_cols[i]
x[,a] = gsub("\"", "", x[,a])
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.