0

如何在字符因子的一个级别中输入引号,以便生成的数字包含 1、2 或 3 的值(对于“既不是“a”也不是“b”)?下面的两次尝试没有给我想要的结果。谢谢。

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

1 回答 1

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() 来共享您的数据框或列表的一小部分,以便我们可以测试一些方法。例如,如果在数据框的前六行中有“既不是“a\”也不是“b”的记录,这将起作用。

dput(head(MM2))
于 2013-10-29T12:33:38.060 回答