2011-10-21 15 views
1

我在R中的以下最低示例代碼:重新排序箱和晶須陰謀中的R

data.time = c(1, 4, 8, 9, 2, 4, 1) 
data.difficulty = c("hard", "simple", "simple", "hard", "simple", "simple", "hard") 
library(lattice) 
bwplot(data.time ~ data.difficulty, xlab="Difficulty", ylab="Time") 

如果您繪製它,你可以看到「硬」是在左邊,「簡單」是正確的。我想要顛倒過來。有沒有辦法做到這一點,而不改變或修改我的原始數據?我不想改變它,因爲數據稍後會用於其他圖表和分析。

謝謝

+0

謝謝大家,我能夠使用紅寶石順利切換該訂購。 – firefly2442

回答

2

您可以使用相關函數來將引用命令爲「簡單」。我必須首先將data.difficulty轉換爲因數,因爲它是字符。

data.difficulty<-relevel(as.factor(data.difficulty), ref="simple") 
bwplot(data.time ~ data.difficulty, xlab="Difficulty", ylab="Time") 
1

我不知道,如果難度向量轉換成一個因子違反關於不改變數據的約束。其他函數最有可能在與原始字符向量相同的基礎上對待它。

dfrm <- data.frame(time=data.time, difficulty=data.difficulty) 
dfrm$difficulty <- factor(dfrm$difficulty, levels=c("simple", "hard")) 
bwplot(time ~ difficulty, data=dfrm, xlab="Difficulty", ylab="Time") 
1

繼其他答案:這傷了你的規則有點通過組織的數據作爲數據幀(這樣我們就可以transform它的飛行bwplot),但如果你能忍受它,它可能一種更好的方式來組織整體的分析......當同一集合中的變量被打包到數據框中而不是作爲單獨的對象放在工作空間中時,R中的許多事物(例如模型預測)變得更加容易。只要您適當地使用data=參數,其他命令也會更容易閱讀。

data.time = c(1, 4, 8, 9, 2, 4, 1) 
data.difficulty = c("hard", "simple", "simple", "hard", 
        "simple", "simple", "hard") 
mydata <- data.frame(time=data.time,difficulty=data.difficulty) 
library(lattice) 
bwplot(time ~ difficulty, xlab="Difficulty", ylab="Time", 
    data = transform(mydata, 
     difficulty=relevel(difficulty,"simple")))