我正在尝试将data.frame列的每个值转换为因子,这样我就可以将它们用作箱线图中的“组”。但是,同时使用as.factor()和as.factor()函数,它会将每个值转换为。该列中有5种不同的单元格类型,CD8,CD4,Bcell,Mono,Gran -并且都变成NA。
令人困惑的是,当我仅将该函数应用于列的一行时,它工作得非常好。数据帧非常非常大(超过300万行)-这会是问题的原因吗?
代码:
> head(BP)
Methylation Cell_Type
1 0.03219298 CD8
2 0.11684228 CD8
3 0.04214158 CD8
4 0.26700497 CD8
5 0.34251732 CD8
6 0.34231208 CD8
> BP$Cell_Type <- as.factor(BP$Cell_Type)
> head(BP)
Methylation Cell_Type
1 0.03219298 <NA>
2 0.11684228 <NA>
3 0.04214158 <NA>
4 0.26700497 <NA>
5 0.34251732 <NA>
6 0.34231208 <NA>不确定为什么会发生这种情况--任何建议都会非常感谢!
谢谢
输出数据输出(头(BP))
> dput(head(BP))
structure(list(Methylation = c(0.0321929818018839,
0.116842281589967,
0.0421415803696093, 0.267004971824527, 0.342517319094108,
0.342312083101948
), Cell_Type = structure(list(Cell_Type = structure(c(3L, 3L,
3L, 3L, 3L, 3L), .Label = c("Bcell", "CD4", "CD8", "Gran", "Mono"
), class = "factor")), row.names = c(NA, 6L), class =
"data.frame")), row.names = c(NA,
6L), class = "data.frame")发布于 2020-04-20 00:50:56
也许首先要确保Cell_Type是一个角色?
BP <- tibble::tribble(
~Methylation, ~Cell_Type,
0.03219298, "CD8",
0.11684228, "CD8",
0.04214158, "CD8",
0.26700497, "CD8",
0.34251732, "CD8",
0.34231208, "CD8")
BP$Cell_Type <- as.factor(BP$Cell_Type)
print(BP)
Methylation Cell_Type
<dbl> <fct>
1 0.0322 CD8
2 0.117 CD8
3 0.0421 CD8
4 0.267 CD8
5 0.343 CD8
6 0.342 CD8 或者简单地说
BP$Cell_Type <- as.factor(as.character(BP$Cell_Type))https://stackoverflow.com/questions/61307972
复制相似问题