我一直在尝试使用以下多种方法按第一列(或日期)对数据框进行排序,但都没有成功。我怀疑可能是因为它试图按第一个数字排序,但我不确定应该如何更改才能正确排序行。数据集如下:
df1
[day][sample1][sample2]
[1,]day0 22 11
[2,]day11 23 15
[3,]day15 25 14
[4,]day2 21 13
[5,]day8 20 17
...
我想按照日期对整行数据进行排序。我尝试了以下方法:
df[sort(as.character(df$day)),]
df[order(as.character(df$day)),]
mixedorder(as.character(df$day)) (gtools package)
仅仅输出一个数字索引。
当前代码:
df_0$day = metadata_df[,3]
df_0 <- df_0[,c(8,1:7)]
df1 <- aggregate(df_0[,2:ncol(df_0)], df_0[1], mean)
df1 <- df1[mixedorder(as.character(df1$day)),]
df1$day <- factor(df1$day, levels = unique(df1$day))
rownames(df1) <- 1:nrow(df1)
##Plotting expression levels
Plot1 <- ggplot() +
geom_line(data=df1, aes(x=day, y=sample1, group=1, color="blue"))+
geom_line(data=df2, aes(x=day, y=sample1, group=2, color="red"))
请注意,我已经对df2进行了与df1相同的转换。 df1和df2是相同的,只是其中的值略有不同。
df[mixedorder(as.character(df$day)) ,]
。 - akrun