R 按字符串对数据帧排序
我有一个数据框,需要按字符串对其列进行排序 我这样试过:R 按字符串对数据帧排序,r,string,sorting,dataframe,R,String,Sorting,Dataframe,我有一个数据框,需要按字符串对其列进行排序 我这样试过: # character string a <- c("B", "E", "A", "D", "C") # data frame data <- data.frame(A = c(0, 0, 1), B = c(1, 1, 1), C = c(1, 0, 1), D = c(0, 0, 1), E = c(0, 1, 1)) data # A B C D E # 1 0 1 1 0 0 # 2
# character string
a <- c("B", "E", "A", "D", "C")
# data frame
data <- data.frame(A = c(0, 0, 1), B = c(1, 1, 1), C = c(1, 0, 1), D = c(0, 0, 1), E = c(0, 1, 1))
data
# A B C D E
# 1 0 1 1 0 0
# 2 0 1 0 0 1
# 3 1 1 1 1 1
# sorting
data.sorted <- data[, order(a)]
# order of characters in data
colnames(data.sorted)
# [1] "C" "A" "E" "D" "B"
#字符串
astring[]str={“H”、“G”、“F”、“D”、“S”、“a”};
Array.Sort(str);
对于(int i=0;istring[]str={“H”、“G”、“F”、“D”、“S”、“A”};
Array.Sort(str);
对于(int i=0;istring[]str={“H”、“G”、“F”、“D”、“S”、“A”};
Array.Sort(str);
对于(int i=0;istring[]str={“H”、“G”、“F”、“D”、“S”、“A”};
Array.Sort(str);
对于(int i=0;i
函数order(a)
返回每个排序值所在的向量a
中的位置。因此,由于“A”(排名第一)位于A
的第三位,A[1]
等于3。同样,“C”(排名第三)位于a
的第五位,然后a[3]
等于5
幸运的是,由于R
使用括号的方式,您的解决方案实际上更加简单。如果您要求只查看名为“B”的列,您将得到:
> data[, "B", drop=FALSE]
B
1 1
2 1
3 1
或者如果您想要两个特定的列
> data[, c("B", "E")]
B E
1 1 0
2 1 1
3 1 1
最后,更一般地说,如果你有一个完整的向量来对列进行排序,那么你也可以这样做:
> data.sorted <- data[, a]
> data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
> all(colnames(data.sorted)==a)
[1] TRUE
>data.sorted data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
>全部(colnames(data.sorted)==a)
[1] 真的
函数order(a)
返回每个排序值所在的向量a
中的位置。因此,由于“A”(排名第一)位于A
的第三位,A[1]
等于3。同样,“C”(排名第三)位于a
的第五位,然后a[3]
等于5
幸运的是,由于R
使用括号的方式,您的解决方案实际上更加简单。如果您要求只查看名为“B”的列,您将得到:
> data[, "B", drop=FALSE]
B
1 1
2 1
3 1
或者如果您想要两个特定的列
> data[, c("B", "E")]
B E
1 1 0
2 1 1
3 1 1
最后,更一般地说,如果你有一个完整的向量来对列进行排序,那么你也可以这样做:
> data.sorted <- data[, a]
> data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
> all(colnames(data.sorted)==a)
[1] TRUE
>data.sorted data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
>全部(colnames(data.sorted)==a)
[1] 真的
函数order(a)
返回每个排序值所在的向量a
中的位置。因此,由于“A”(排名第一)位于A
的第三位,A[1]
等于3。同样,“C”(排名第三)位于a
的第五位,然后a[3]
等于5
幸运的是,由于R
使用括号的方式,您的解决方案实际上更加简单。如果您要求只查看名为“B”的列,您将得到:
> data[, "B", drop=FALSE]
B
1 1
2 1
3 1
或者如果您想要两个特定的列
> data[, c("B", "E")]
B E
1 1 0
2 1 1
3 1 1
最后,更一般地说,如果你有一个完整的向量来对列进行排序,那么你也可以这样做:
> data.sorted <- data[, a]
> data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
> all(colnames(data.sorted)==a)
[1] TRUE
>data.sorted data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
>全部(colnames(data.sorted)==a)
[1] 真的
函数order(a)
返回每个排序值所在的向量a
中的位置。因此,由于“A”(排名第一)位于A
的第三位,A[1]
等于3。同样,“C”(排名第三)位于a
的第五位,然后a[3]
等于5
幸运的是,由于R
使用括号的方式,您的解决方案实际上更加简单。如果您要求只查看名为“B”的列,您将得到:
> data[, "B", drop=FALSE]
B
1 1
2 1
3 1
或者如果您想要两个特定的列
> data[, c("B", "E")]
B E
1 1 0
2 1 1
3 1 1
最后,更一般地说,如果你有一个完整的向量来对列进行排序,那么你也可以这样做:
> data.sorted <- data[, a]
> data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
> all(colnames(data.sorted)==a)
[1] TRUE
>data.sorted data.sorted
B E A D C
1 1 0 0 0 1
2 1 1 0 0 0
3 1 1 1 1 1
>全部(colnames(data.sorted)==a)
[1] 真的
用于描述ADD Array.reverse();用于描述ADD Array.reverse();用于描述ADD Array.reverse();用于描述ADD Array.reverse();