簡體   English   中英

R中的圖形X軸排序錯誤

[英]Graph misordering X axis in R

我正在為不同試驗塊的R論文作圖。 10是出於某種原因在1認為它是有序的之后出現的。

我目前擁有的代碼是

library(dplyr)
All1 <- mydata[,c(36:45,98)]

meansall1 <- aggregate(All1[, 1:(ncol(All1)-1)], list(All1$Group), mean)
tmeansall1 <- data.frame(t(meansall1))
names(tmeansall1) <- c("AN", "HC")
meanstall1 <- tmeansall1[-1,]
meanstall1$trials <- rownames(meanstall1)

library(reshape2)
meltall1<- melt(meanstall1, id = "trials")

ggplot(data = meltall1, aes(trials, value, group=variable)) + geom_line(aes(linetype=variable))

任何幫助將不勝感激!

在此處輸入圖片說明

該圖未訂購任何東西。 已經在meltall1訂購了meltall1 如果要在將其傳遞給ggplot之前對其重新ggplot ,請參見以下示例:

dplyr arrange()dplyr函數,用於根據列對行進行排序。 在這里,您不只是想根據一列進行排序(因為它已經按照該順序排序):

arrange(df, x)
#       x           y
# 1  Xab1 -0.06191171
# 2 Xab10  0.82158108
# 3  Xab2  0.55391765
# 4  Xab3  0.68864025

您想根據該列的轉換對其進行排序:

arrange(df, as.numeric(gsub("\\D", "", x)))
#       x           y
# 1  Xab1 -0.06191171
# 2  Xab2  0.55391765
# 3  Xab3  0.68864025
# 4 Xab10  0.82158108

這里的慣用法是: as.numeric(gsub("\\\\D", "", x))產生一個向量,該向量將按順序排列,因為您可能期望其中有一個數字的字符向量將按順序排列。 如果要與基數R編碼一起使用而不是dplyr排序,請執行以下操作:

df[order(as.numeric(gsub("\\D", "", df$x))),]
#       x          y
# 3  Xab1 0.12928774
# 1  Xab2 1.55870831
# 2  Xab3 0.07050839
# 4 Xab10 1.71506499

唯一的區別是保留了對data.frame的原始調用中生成的行號。

數據:

set.seed(123)
x <- c("Xab1", "Xab2", "Xab3", "Xab10")
df <- data.frame(x = sample(x), y = rnorm(4))
#       x          y
# 1  Xab2 1.55870831
# 2  Xab3 0.07050839
# 3  Xab1 0.12928774
# 4 Xab10 1.71506499

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM