我将 csv 文件读入名为rr. 角色栏被视为因素,这很好。
我是否正确理解这些levels只是unique列的值?IE
levels(rr$col) == unique(rr$col)
Run Code Online (Sandbox Code Playgroud)
然后我想去掉前导和尾随空格。(我不知道 read 中的 strip.WHITESPACE 选项)所以我做了
rr$col = str_trim(rr$col).
Run Code Online (Sandbox Code Playgroud)
现在rr$col不再是一个因素了。所以我做了
rr$col = as.factor(rr$col)
Run Code Online (Sandbox Code Playgroud)
但我现在发现它levels(rr$col)缺少一些独特的价值观!为什么?
“级别”是变量(列)的特殊属性。它们很方便,因为即使子集不包含特定级别的任何值,它们也会被保留。举个例子
x <- as.factor(rep(letters[1:3], each = 3))
Run Code Online (Sandbox Code Playgroud)
如果我们仅对 level 下的元素进行子集化,a并且b,c则被排除在外。它将被检测到levels(),但不会被检测到unique()。后者将查看哪些值仅出现在子集中。
> x[c(1,2, 4)]
[1] a a b
Levels: a b c
> levels(x[c(1,2, 4)])
[1] "a" "b" "c"
> unique(x[c(1,2, 4)])
[1] a b
Levels: a b c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6091 次 |
| 最近记录: |