拉風(fēng)的咖菲貓
2019-06-28 15:41:17
將data.framework列從因子轉(zhuǎn)換為字符我有一個(gè)數(shù)據(jù)框架。我們打電話給他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-我想連接這個(gè)數(shù)據(jù)框架的行(這將是另一個(gè)問題)。但是你看:> 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)"我還沒有開始理解這一點(diǎn),但我想這些都是關(guān)于(加拉卡庫斯國王宮廷)的因素水平的指數(shù)。bob?不是我想要的。奇怪的是,我可以瀏覽bob用手做bob$phenotype <- as.character(bob$phenotype)效果很好。而且,在輸入一些內(nèi)容之后,我可以得到一個(gè)data.framework,它的列是字符而不是因素。所以我的問題是:我怎么能自動(dòng)做到這一點(diǎn)?如何將帶因子列的data.framework轉(zhuǎn)換為具有字符列的data.framework,而不必手動(dòng)遍歷每個(gè)列?額外的問題:為什么手動(dòng)方法有效?
3 回答

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
bob <- data.frame(lapply(bob, as.character), stringsAsFactors=FALSE)
bob[] <- lapply(bob, as.character)
lapply
[]
bob
as.data.frame
stringsAsFactors = FALSE
.

繁華開滿天機(jī)
TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
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
添加回答
舉報(bào)
0/150
提交
取消