Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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_Dataframe - Fatal编程技术网

按R中的字符串和数字按一列对数据帧进行排序

按R中的字符串和数字按一列对数据帧进行排序,r,dataframe,R,Dataframe,我有一个要排序的数据框。但是,我要排序的列是字母和数字的组合 df <- data.frame(a = sample(paste0("C", 1:20)), b = sample(LETTERS[1:26],20)) df[order(df$a),] df像这样对混合的数字/字符数据进行排序是一个常见问题。一个选项是继续按文本排序,但用零填充每个条目,使所有条目具有相同的长度,例如3。库stringr有一个函数stru pad,它可以帮助: library(stringr) df <

我有一个要排序的数据框。但是,我要排序的列是字母和数字的组合

df <- data.frame(a = sample(paste0("C", 1:20)), b = sample(LETTERS[1:26],20))
df[order(df$a),]

df像这样对混合的数字/字符数据进行排序是一个常见问题。一个选项是继续按文本排序,但用零填充每个条目,使所有条目具有相同的长度,例如3。库
stringr
有一个函数
stru pad
,它可以帮助:

library(stringr)
df <- data.frame(a = sample(paste0("C", str_pad(c(1:20), 3, pad="0"))),
                 b = sample(LETTERS[1:26],20))
df[order(df$a),]

      a b
18 C001 R
11 C002 C
1  C003 O
2  C004 Q
10 C005 I
...
库(stringr)

df您需要的是
库(gtools);df[mixedorder(如.character(df$a)),]