R:字符因子中的引号

时间:2013-10-28 18:44:10

标签: r

如何输入字符因子的一个级别中的引号,以便结果数字包含值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 

1 个答案:

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