plot()| qplot(…,geom=”boxplot“,…)不需要的因子排序(R 3.1.2)

plot()| qplot(…,geom=”boxplot“,…)不需要的因子排序(R 3.1.2),r,plot,ggplot2,R,Plot,Ggplot2,我有一个由两列组成的数据框,一列是因子列(“C7”:“C20”),另一列是数字。当我尝试绘制数据帧时,因子的顺序按字母顺序排列,即从C10…C20,C7,C8,C9开始。我正在尝试按顺序进行排序,即C7->C20 我已尝试使用因子函数对因子进行排序: X2 <- factor(X1$column1, levels:c("C7", "C8", "C9", ... , "C20")) X2这里有一个可能的解决方案:首先绘制不带x轴的数据值,然后将其添加到正确的标签上 df = data.fr

我有一个由两列组成的数据框,一列是因子列(“C7”:“C20”),另一列是数字。当我尝试绘制数据帧时,因子的顺序按字母顺序排列,即从C10…C20,C7,C8,C9开始。我正在尝试按顺序进行排序,即C7->C20

我已尝试使用因子函数对因子进行排序:

X2 <- factor(X1$column1, levels:c("C7", "C8", "C9", ... , "C20"))

X2这里有一个可能的解决方案:首先绘制不带x轴的数据值,然后将其添加到正确的标签上

df = data.frame(fact = paste0("C",c(7:20)), num = runif(14))
plot(df$num, xaxt="n")
axis(1, at = 1:length(df$num), labels = df$fact)

然后,您可以在
plot
中更改
type=
以更改绘图类型(点、线、步数等)

这里有一个可能的解决方案:首先绘制不带x轴的数据值,然后使用正确的标签将其添加

df = data.frame(fact = paste0("C",c(7:20)), num = runif(14))
plot(df$num, xaxt="n")
axis(1, at = 1:length(df$num), labels = df$fact)

然后您可以在
plot
中更改
type=
以更改绘图类型(点、线、步数等)

我找到了如何更改数据帧中变量的类,这解决了我的问题。我需要引用dataframe中的变量以更改其类:

df$col1 <- factor(df$col1, levels= c("C7", "C8", "C9", "C10", ..., "C20"))

df$col1我想出了如何在数据帧中更改变量的类,这解决了我的问题。我需要引用dataframe中的变量以更改其类:

df$col1 <- factor(df$col1, levels= c("C7", "C8", "C9", "C10", ..., "C20"))

df$col1Ok,因此您需要使用
gtools
包中的
mixedsort
,以便执行以下操作:

mixedsort
根据字母数字字符串的数字部分对其进行排序,即在本例中,它正是您所需要的

示例数据

x <- factor(  rep(c('c1','c2','c10','c11'),each=10))
y <- runif(40)
df <- data.frame(y,x)

boxplot(y ~ x, data=df)

好,因此您需要使用
gtools
包中的
mixedsort
,以便执行以下操作:

mixedsort
根据字母数字字符串的数字部分对其进行排序,即在本例中,它正是您所需要的

示例数据

x <- factor(  rep(c('c1','c2','c10','c11'),each=10))
y <- runif(40)
df <- data.frame(y,x)

boxplot(y ~ x, data=df)

这没有道理。如果将data.frame的一列转换为factor,则不应影响其余列。你确定它不是矩阵吗?在上面的代码中,您只需为变量X2指定一个因子。是排序问题还是绘制data.frame?目前尚不清楚。也许你需要创建一个可复制的例子,以便向我们展示你所需要的。如果我把你弄糊涂了,我道歉。我不熟悉R。问题在于将data.frame绘制为箱线图。数字y轴很好。然而,x轴上因子的顺序与预期不同,即C7-C20。相反,x轴从C10…C20,C7,C8,C9开始排序。数据的结构使得每个因素大约有100个观察值。我知道我在上面的代码中哪里出错了。。。X2仅包含因子变量,而不包含数值变量。数据的类是data.frame。这没有意义。如果将data.frame的一列转换为factor,则不应影响其余列。你确定它不是矩阵吗?在上面的代码中,您只需为变量X2指定一个因子。是排序问题还是绘制data.frame?目前尚不清楚。也许你需要创建一个可复制的例子,以便向我们展示你所需要的。如果我把你弄糊涂了,我道歉。我不熟悉R。问题在于将data.frame绘制为箱线图。数字y轴很好。然而,x轴上因子的顺序与预期不同,即C7-C20。相反,x轴从C10…C20,C7,C8,C9开始排序。数据的结构使得每个因素大约有100个观察值。我知道我在上面的代码中哪里出错了。。。X2仅包含因子变量,而不包含数值变量。数据的类是data.frame.Thank Clemlafleme。问题:如果我用一个独立的数据框标记轴,R如何知道哪个数据观测属于哪个组?当然没有控制,我不知道@LyzandeR提出的
mixedsort
。这是一个更好的解决方案。谢谢你的考虑。您的代码将来会很有用。谢谢,谢谢克莱姆拉弗姆。问题:如果我用一个独立的数据框标记轴,R如何知道哪个数据观测属于哪个组?当然没有控制,我不知道@LyzandeR提出的
mixedsort
。这是一个更好的解决方案。谢谢你的考虑。您的代码将来会很有用。谢谢。我用
mixedsort
发布了一个备选方案,以防你有100个因子,例如,在这种情况下,你只需输入这些因子就需要花费很多时间。或者:)。但这就是投票的想法,谢谢LyzandeR。是的,输入C7…C10和所有的倒逗号等,是令人恼火的。
mixedsort()
函数非常有用。非常感谢。我用
mixedsort
发布了一个备选方案,以防你有100个因子,例如,在这种情况下,你只需输入这些因子就需要花费很多时间。或者:)。但这就是投票的想法,谢谢LyzandeR。是的,输入C7…C10和所有的倒逗号等,是令人恼火的。
mixedsort()
函数非常有用。非常感谢。