【发布时间】:2020-03-30 14:34:38
【问题描述】:
我很难在 R Studio 中将多个因子水平折叠成一个特定变量的三个因子水平。
我的出发点是data.table,它有 250 个变量和大约 4,000 行。对于一个因素变量,我想将它的 75 个级别合并为 3 个级别。此外,在 75 个级别中,应忽略 4 个级别(或之前设置为 NA),因为它们包含有争议的信息。该因子变量基于调查答案,其中还包括文本格式的个人答案。有时甚至语言也不同。所以,有点乱。
我尝试以两种不同的方式将这 75 个级别(或者如果之前分别设置为 NA 的情况下为 71 个级别)折叠成 3 个级别。但是,R 总是在控制台中返回 + 而不是 >,我无法继续执行任何其他命令。当然,我可以通过点击Esc 来阻止这种情况,但这并不能帮助我获得想要的结果。
所以,这个虚构的例子应该显示我尝试过的内容:
1) 使用levels 和list 函数
levels(dt$x) <- list("No"=c("I don't allow anything", "..."),
"Yes"= c("Number of visitors ,annual sales, sales growth, number of customers", "Net sales", "..."),
"Maybe"=c("The CEO's approval is needed.", "To be discussed"))
2) 使用forcats 包
dt$x %>%
fct_collapse(No= c("I don't allow anything", "..."),
Yes= c("Number of visitors ,annual sales, sales growth", "number of customers", "Net sales", "..."),
Maybe=c("The CEO's approval is needed.", "To be discussed"))
我认为问题是由原始变量的结构引起的。有谁知道我该如何解决这个问题?
非常感谢您!
最好, 伊尔卡
【问题讨论】:
标签: r character factors levels