如何在R中按升序对列进行排序

3
我希望将我的列(date)按升序排列。 我尝试了以下方法,但没有成功。
data3 <- data2[order(data2$date_1,decreasing = FALSE)]

这给了我以下错误:

[.data.frame(data2, order(data2$date_1, decreasing = FALSE)) 的错误:选择未定义的列

我的数据如下:

Sr. date_1 No_of_births  
1   1   40255  
2   10  41874  
3   11  38940  
4   12  40320  
5   2   36428  
6   3   39940  
7   4   37641  
8   5   39288  
9   6   38789  
10  7   42148  
11  8   42980  
12  9   42112  

我需要的输出如下,其中还包含其他列。 (仅显示日期列)
Date

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12

2
你只是漏掉了一个逗号,这里加粗标出来了: data3 <- data2[order(data2$date_1, decreasing = FALSE) , ]。使用[对数据框进行子集操作有两种方式:data [列]data [行,列]。因为您没有使用任何逗号,所以它尝试挑选特定的列。因为您的行数大于列数,所以它尝试选择不存在的列。 - Gregor Thomas
2个回答

5

简单的dplyr解决方案:

install.packages('dplyr')
library('dplyr')

data3 <- arrange(data2, date)

0

尝试 data3 <- data2[order(as.integer(data2$date_1),decreasing = FALSE), ]

另外:

在使用order之前,检查class(date2$date_1)是一个好主意。如果这些数据是integernumeric类,则为1、2、3、...、10、11等;但是,如果是character类型,则不进行强制转换为整数,您将得到"1"、"10"、"11"、"12"等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接