我有一个数据框来处理我有一堆变量作为引号的因素,如""x1"".
str(df) 给我这样的东西:
$ x : Factor w/ 10 Levels "\"\"x1\"\"",..: 1 7 9 ...
Run Code Online (Sandbox Code Playgroud)
我试图摆脱gsub()功能的引号,但没有用.可能是因为我不知道插入什么样的图案?如果有人可以解决这个难题并且可能向我解释"\"\"x1\"\""是否有解决方案,那会很棒吗?
数据框的示例如下所示:
structure(list(Sent = structure(c(2L, 2L, 2L, 2L, 2L), .Label = c("\"\"Opted out\"\"",
"\"\"Yes\"\""), class = "factor"), Responded = structure(c(2L,
2L, 2L, 2L, 2L), .Label = c("\"\"Complete\"\"", "\"\"No\"\"",
"\"\"Partial\"\""), class = "factor")), row.names = c(NA, -5L
), class = c("tbl_df", "tbl", "data.frame"), .Names = c("Sent",
"Responded"))
Run Code Online (Sandbox Code Playgroud)
提前致谢!
vec = c('""x1""', '""x2""', '""x3""')
vec = factor(vec)
levels(vec) <- gsub('["\\]', "", levels(vec))
#> vec
#[1] x1 x2 x3
#Levels: x1 x2 x3
Run Code Online (Sandbox Code Playgroud)
'当我想"在字符串中使用时,看看我将如何用作包装器.
它对您不起作用的另一个问题可能是因为您没有使用levels属性而是使用因子变量本身.
1, 2, 3,...数字.正如您现在提供的数据,您可以使用:( df1作为您的数据与因子列)
df1[] <- lapply(df1, function(vec){ levels(vec) <- gsub('["\\]',"",levels(vec)); vec})
Run Code Online (Sandbox Code Playgroud)