將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
提交
取消