我正在嘗試創建一個R dataFrame,其中一些列將被視爲因子和其他字符串。在數據框中混合`stringsAsFactors`
fruits <- data.frame(fruit = character(), descr = character())
fruits <- rbind(fruits, data.frame(fruit = "apple", descr = "jjrkgnser"))
fruits <- rbind(fruits, data.frame(fruit = "apple", descr = "aprtgh"))
fruits <- rbind(fruits, data.frame(fruit = "pear", descr = "akjreg"))
這裏既有列被視爲因素,我結束了與許多因素的descr
列,還有在fruits
數據幀行。
descr
如何被視爲字符串,但fruit
作爲因素? 如果我使用stringsAsFactors = FALSE
它適用於所有列!
編輯
我砍死這個解決方案,而不是那麼優雅:
fruits <- data.frame(fruit = factor(), path = character(), stringsAsFactors = FALSE)
fruits <- rbind(fruits, data.frame(fruit = factor("apple"), path = "jjrkgnser", stringsAsFactors = FALSE))
fruits <- rbind(fruits, data.frame(fruit = factor("apple"), path = "aprtgh", stringsAsFactors = FALSE))
fruits <- rbind(fruits, data.frame(fruit = factor("pear"), path = "akjreg", stringsAsFactors = FALSE))
做
> str(fruits)
'data.frame': 3 obs. of 2 variables:
$ fruit: Factor w/ 2 levels "apple","pear": 1 1 2
$ path : chr "jjrkgnser" "aprtgh" "akjreg"
符合要求。有沒有更好的的方式?
使用命令如果需要的話,對每一列分別'as.factor'和'as.character'。 – AntoniosK
你使用'rbind'作爲腳本的一部分嗎?爲什麼不一次創建整個數據集?像'fruits < - data.frame(fruit = c(「apple」,「apple」,「pear」),descr = I(c(「jjrkgnser」,「aprtgh」,「akjreg」)))''。你的代碼既過度複雜又低效,因爲它在不預先分配內存的情況下正在增長對象 –
@AntoniosK你會介意發佈它作爲答案嗎?我無法弄清楚如何。 –