如何输入字符因子的一个级别中的引号,以便结果数字包含值1,2或3(对于'不是" a"或" b& #34;)?下面的两次尝试没有给我想要的结果。谢谢。
> table(MM2$a.9)
FALSE Neither “a” or “b” TRUE
34 90 583
> MM2$a04f <- as.numeric(factor(MM2$a.9, levels=c ('TRUE','FALSE','Neither “a” or “b”')))
> table(MM2$a04f)
1 2
583 34
> MM2$a04f <- as.numeric(factor(MM2$a.9, levels=c ("TRUE","FALSE","Neither \"a\" or \"b\"")))
> table(MM2$a04f)
1 2
583 34
答案 0 :(得分:0)
(我发布这个作为“答案”,即使它真的是一个评论......只是这样我可以更好地控制我发布的代码。)
我创建了一些虚假数据,你的第二种方法就是这样做的。
df <- structure(list(x = c("TRUE", "FALSE", "Neither \"a\" nor \"b\"",
"TRUE", "FALSE", "Neither \"a\" nor \"b\"", "TRUE", "FALSE",
"Neither \"a\" nor \"b\"")), .Names = "x", class = "data.frame",
row.names = c(NA, -9L))
df
df$x
table(df$x)
table(as.numeric(factor(df$x, levels=c("TRUE", "FALSE", "Neither \"a\" nor \"b\""))))
我建议您使用dput()共享数据框或列表的一小部分,以便我们可以测试方法。例如,如果在数据框的前六行中有“无”和“或”b“'的记录,则可以使用。
dput(head(MM2))