Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:根据中位数的有序箱线图的错误图形_R_Boxplot - Fatal编程技术网

R:根据中位数的有序箱线图的错误图形

R:根据中位数的有序箱线图的错误图形,r,boxplot,R,Boxplot,下面是我要做的:我有一个160行的data.frame(data),有两个变量(事实(8组)和响应),我想做一个response~fact的箱线图,按中间值的递增顺序排序 代码: data <- read.table("box.txt",header=T) attach(data) index <- order(tapply(response,fact,median)) ordered <- factor(rep(index,rep(20,8))) boxplot(re

下面是我要做的:我有一个160行的data.frame(data),有两个变量(事实(8组)和响应),我想做一个response~fact的箱线图,按中间值的递增顺序排序

代码:

data <- read.table("box.txt",header=T)

attach(data)

index <- order(tapply(response,fact,median))

ordered <- factor(rep(index,rep(20,8)))

boxplot(response~ordered,notch=T,names=as.character(index),xlab="treatments",ylab="response")

data不知道它为什么看起来“不好”,但是顺序是错误的,因为您使用
order
而不是
rank
来查找索引。对于其他问题,您可能必须进行分析。

以下是可复制的示例,其中有两个箱线图进行比较。在我的情况下,阴谋(可能)看起来很糟糕,因为魔鬼的耳朵。关于OP的问题,我认为他的措辞很糟糕,因为使用
order()
而不是
rank()
也会导致其他灾难(尽管我不知道为什么)


数据一个可重复且看似正确的答案是:

set.seed(1)
data <- data.frame(response=10*rnorm(160), fact=factor(rep(1:8), labels=letters[1:8]))
data$fact <- reorder(data$fact, data$response, median)
boxplot(response~fact, data=data, notch=TRUE, xlab="treatments", ylab="response")
set.seed(1)

非常感谢你提供的线索,但不必嘲笑我笨拙的“坏”或“坏”,我的意思是我得到了与我所等待的不同的东西。不是每个人都以英语为母语。。。我是一个R初学者,我在Crawley的《R书》中发现了这个例子,其中的“order”通过增加“mean”的顺序对箱线图进行分类。然后我尝试了“中位数”,但结果证明这个方法是错误的。仍然是在x轴的刻度上放置正确的“名称”的问题。也许这次“订单”就可以了?请原谅我英语不好,向你问好。
set.seed(1)
data <- data.frame(response=10*rnorm(160), fact=factor(rep(1:8), labels=letters[1:8]))
data$fact <- reorder(data$fact, data$response, median)
boxplot(response~fact, data=data, notch=TRUE, xlab="treatments", ylab="response")