Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.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中对data.frame进行排序_R_Dataframe - Fatal编程技术网

在R中对data.frame进行排序

在R中对data.frame进行排序,r,dataframe,R,Dataframe,我正在寻找有关使用字母数字组件对数据框进行排序的建议: 假设我们有: A = c("A1","A10","A11","A2") B = c(1,2,3,4) C = data.frame(A,B) 我怎样才能对Cdata.frame进行排序,这样我们就可以在末尾看到: C$A顺序为:“A1”、“A2”、“A10”、“A11” 假设每个条目的开头只有一个字母部分,合理的策略是先按字母排序(使用字符(字母)排序),然后按数字部分排序(使用数字排序) (我推测您可能希望在字母段不恒定的情况下使用此

我正在寻找有关使用字母数字组件对
数据框进行排序的建议:

假设我们有:

A = c("A1","A10","A11","A2")
B = c(1,2,3,4)

C = data.frame(A,B)
我怎样才能对C
data.frame
进行排序,这样我们就可以在末尾看到:


C$A
顺序为:“A1”、“A2”、“A10”、“A11”

假设每个条目的开头只有一个字母部分,合理的策略是先按字母排序(使用字符(字母)排序),然后按数字部分排序(使用数字排序)

(我推测您可能希望在字母段不恒定的情况下使用此选项。)

您可以通过以下方式执行此操作:

C[order(substr(A,1,1), as.numeric(substr(A, 2,length(A)))),]

如果字符串比后跟数字的1个字母更一般,则可以使用正则表达式选择适当的字符串进行排序。

假设每个条目的开头只有一个字母部分,合理的策略是先按该字母排序(使用字符(字母)排序),然后通过数值分量(使用数值排序)

(我推测您可能希望在字母段不恒定的情况下使用此选项。)

您可以通过以下方式执行此操作:

C[order(substr(A,1,1), as.numeric(substr(A, 2,length(A)))),]

如果字符串比后跟数字的1个字母更一般,则可以使用正则表达式选择适当的字符串进行排序。

假设每个条目的开头只有一个字母部分,合理的策略是先按该字母排序(使用字符(字母)排序),然后通过数值分量(使用数值排序)

(我推测您可能希望在字母段不恒定的情况下使用此选项。)

您可以通过以下方式执行此操作:

C[order(substr(A,1,1), as.numeric(substr(A, 2,length(A)))),]

如果字符串比后跟数字的1个字母更一般,则可以使用正则表达式选择适当的字符串进行排序。

假设每个条目的开头只有一个字母部分,合理的策略是先按该字母排序(使用字符(字母)排序),然后通过数值分量(使用数值排序)

(我推测您可能希望在字母段不恒定的情况下使用此选项。)

您可以通过以下方式执行此操作:

C[order(substr(A,1,1), as.numeric(substr(A, 2,length(A)))),]

如果字符串比后跟数字的1个字母更一般,则可以使用正则表达式选择要排序的适当字符串。

您可以尝试从“gtools”包中选择
混合排序。它的作用如下:

> library(gtools)
> mixedorder(as.character(C$A))
[1] 1 4 2 3
因此,要按“A”列排序:


您还可以通过以下方式获得相同的订购:

order(nchar(as.character(C$A)))
## [1] 1 4 2 3

您可以从“gtools”软件包中尝试
mixedorder

> library(gtools)
> mixedorder(as.character(C$A))
[1] 1 4 2 3
因此,要按“A”列排序:


您还可以通过以下方式获得相同的订购:

order(nchar(as.character(C$A)))
## [1] 1 4 2 3

您可以从“gtools”软件包中尝试
mixedorder

> library(gtools)
> mixedorder(as.character(C$A))
[1] 1 4 2 3
因此,要按“A”列排序:


您还可以通过以下方式获得相同的订购:

order(nchar(as.character(C$A)))
## [1] 1 4 2 3

您可以从“gtools”软件包中尝试
mixedorder

> library(gtools)
> mixedorder(as.character(C$A))
[1] 1 4 2 3
因此,要按“A”列排序:


您还可以通过以下方式获得相同的订购:

order(nchar(as.character(C$A)))
## [1] 1 4 2 3