如何在分解 R 中的列后保持级别顺序
How to maintain order of levels after factorizing column in R
我有一个从额叶到顶叶的不同电极排列 (25x25=625)。
> head(grph_test)
Elec1 Elec2
1 Fp1 Fp1
2 Fp1 Fp2
3 Fp1 F7
4 Fp1 F3
5 Fp1 Fz
6 Fp1 F4
问题是我想对列进行因式分解,但它会将级别顺序更改为字母顺序,这对我的目的没有用。
> test$Elec1 <- factor(test$Elec1, ordered = is.ordered(test$Elec1))
> levels(grph_test$Elec1)
[1] "C3" "C4" "CP1" "CP2" "CP5" "CP6" "Cz" "F3" "F4" "F7" "F8" "FC1" "FC2" "FC5" "FC6" "Fp1" "Fp2" "Fz" "Oz" "P3" "P4" "P7" "P8"
[24] "POz" "Pz"
虽然我的预期是它们最终会按照与原始专栏相同的顺序排列,但原始专栏遵循如下列表:
"Fp1","Fp2","F7","F3","Fz","F4","F8","FC5","FC1","FC2","FC6","C3","Cz","C4","CP5","CP1","CP2","CP6","P7","P3","Pz","P4","P8","POz","Oz"
我认为,根据文档,ordered = is.ordered(test$Elec1)
参数能够保持原始顺序,但如您所见,它不能。
知道为什么吗?谢谢!
我们可以在 factor
的 levels
参数中使用 unique
作为 unique
returns 该元素第一次出现的唯一值,因此它保持与原始数据相同的出现顺序
test$Elec1 <- factor(test$Elec1, levels = unique(test$Elec1))
注意:is.ordered
returns 逻辑输出
我有一个从额叶到顶叶的不同电极排列 (25x25=625)。
> head(grph_test)
Elec1 Elec2
1 Fp1 Fp1
2 Fp1 Fp2
3 Fp1 F7
4 Fp1 F3
5 Fp1 Fz
6 Fp1 F4
问题是我想对列进行因式分解,但它会将级别顺序更改为字母顺序,这对我的目的没有用。
> test$Elec1 <- factor(test$Elec1, ordered = is.ordered(test$Elec1))
> levels(grph_test$Elec1)
[1] "C3" "C4" "CP1" "CP2" "CP5" "CP6" "Cz" "F3" "F4" "F7" "F8" "FC1" "FC2" "FC5" "FC6" "Fp1" "Fp2" "Fz" "Oz" "P3" "P4" "P7" "P8"
[24] "POz" "Pz"
虽然我的预期是它们最终会按照与原始专栏相同的顺序排列,但原始专栏遵循如下列表:
"Fp1","Fp2","F7","F3","Fz","F4","F8","FC5","FC1","FC2","FC6","C3","Cz","C4","CP5","CP1","CP2","CP6","P7","P3","Pz","P4","P8","POz","Oz"
我认为,根据文档,ordered = is.ordered(test$Elec1)
参数能够保持原始顺序,但如您所见,它不能。
知道为什么吗?谢谢!
我们可以在 factor
的 levels
参数中使用 unique
作为 unique
returns 该元素第一次出现的唯一值,因此它保持与原始数据相同的出现顺序
test$Elec1 <- factor(test$Elec1, levels = unique(test$Elec1))
注意:is.ordered
returns 逻辑输出