将data.framework列从因子转换为字符我有一个数据框架。我们打电话给他bob:> head(bob)
phenotype exclusion
GSM399350 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-GSM399351 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-GSM399352 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-GSM399353 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-GSM399354 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-GSM399355 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-我想连接这个数据框架的行(这将是另一个问题)。但是你看:> class(bob$phenotype)[1] "factor"Bob列是因素。因此,例如:> as.character(head(bob))[1] "c(3, 3, 3, 6, 6, 6)" "c(3, 3, 3, 3, 3, 3)" [3] "c(29, 29, 29, 30, 30, 30)"我还没有开始理解这一点,但我想这些都是关于(加拉卡库斯国王宫廷)的因素水平的指数。bob?不是我想要的。奇怪的是,我可以浏览bob用手做bob$phenotype <- as.character(bob$phenotype)效果很好。而且,在输入一些内容之后,我可以得到一个data.framework,它的列是字符而不是因素。所以我的问题是:我怎么能自动做到这一点?如何将带因子列的data.framework转换为具有字符列的data.framework,而不必手动遍历每个列?额外的问题:为什么手动方法有效?
3 回答
萧十郎
TA贡献1815条经验 获得超13个赞
bob <- data.frame(lapply(bob, as.character), stringsAsFactors=FALSE)
bob[] <- lapply(bob, as.character)
lapply
[]
bob
as.data.frame
stringsAsFactors = FALSE
.
繁华开满天机
TA贡献1816条经验 获得超4个赞
i <- sapply(bob, is.factor)bob[i] <- lapply(bob[i], as.character)
mutate_if
library(dplyr)bob %>% mutate_if(is.factor, as.character) -> bob
library(purrr)library(dplyr)bob %>% map_if(is.factor, as.character) %>% as_data_frame -> bob
添加回答
举报
0/150
提交
取消