由于某些原因,这段代码找到了“label”列不是==“Negative”的所有实例,而是用NA替换它们而不是“〜Negative”......我不知道为什么。 该表是dcsv4,其中列标记为tweets,标签为:
dcsv4$label[dcsv$label != "Negative"]<-"~Negative"
值是其他字符串,如“愤怒”,“正面”和“兴奋”......
答案 0 :(得分:1)
你应该了解的第一件因素是它们很奇怪。你可以考虑他们的主要特征是
他们既不像
那样x&lt; - sample(c(&#34; Angry&#34;,&#34; Positive&#34;,&#34; Excited&#34;,&#34; Negative&#34;), 25,替换= TRUE) x&lt; - factor(x)
当您尝试在下面进行分配时,您正在尝试用字符覆盖基础数值。 R并没有很好地解释它,所以它返回缺失值。
x_attempt1 <- x
(x_attempt1[x_attempt1 != "Negative"] <- "~Negative")
一个因素有两个部分。级别是整数部分,它们总是从1到n,其中n是级别数。
标签是我们看到的部分。
如果您想修改因子标签的外观,您实际上必须访问levels
属性
levels(x)
不要被那里的功能名称所欺骗。 levels
将显示标签,但标签按级别的升序排序(因此第一个标签为1,第二个标签为2,等等)
如果要更改标签的外观,可以执行以下操作:
x_attempt2 <- x
levels(x_attempt2) <- list("~Negative" = c("Angry", "Positive", "Excited"),
"Negative" = "Negative")
x_attempt2
或者,如果你想让生活变得更加舒适,可以将因子转换为角色向量,然后事情会像你期望的那样工作。
x <- as.character(x)
x[x != "Negative"] <- "~Negative"