相关疑难解决方法(0)

如何按多列对数据帧进行排序?

我想按多列对data.frame进行排序.例如,对于下面的data.frame,我想按列z(降序)然后按列b(升序)排序:

dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"), 
      levels = c("Low", "Med", "Hi"), ordered = TRUE),
      x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
      z = c(1, 1, 1, 2))
dd
    b x y z
1  Hi A 8 1
2 Med D 3 1
3  Hi A 9 1
4 Low C 9 2
Run Code Online (Sandbox Code Playgroud)

sorting r dataframe r-faq

1266
推荐指数
19
解决办法
117万
查看次数

按列名对数据框的列进行排序

这可能是一个简单的问题,但我不知道如何按字母顺序排列.

test = data.frame(C = c(0, 2, 4, 7, 8), A = c(4, 2, 4, 7, 8), B = c(1, 3, 8, 3, 2))

#   C A B
# 1 0 4 1
# 2 2 2 3
# 3 4 4 8
# 4 7 7 3
# 5 8 8 2
Run Code Online (Sandbox Code Playgroud)

我喜欢按字母顺序按列名排序,以实现

#   A B C
# 1 4 1 0
# 2 2 3 2
# 3 4 8 4
# 4 7 3 7
# 5 …
Run Code Online (Sandbox Code Playgroud)

sorting r dataset

76
推荐指数
6
解决办法
11万
查看次数

使用自定义顺序重新排序行

鉴于数据:

library(data.table)
DT = data.table(category=LETTERS[1:3], b=1:3)
DT
#    category b
# 1:        A 1
# 2:        B 2
# 3:        C 3
Run Code Online (Sandbox Code Playgroud)

使用dplyr,如何重新排列行来获得特定的顺序c("C", "A", "B")category

#    category b
# 1:        C 3
# 2:        A 1
# 3:        B 2
Run Code Online (Sandbox Code Playgroud)

r dplyr

40
推荐指数
2
解决办法
3万
查看次数

如何在调用ladderize函数后在APE中获得正确的tip标签顺序

我正在尝试根据系统发育树中的尖端标签来排序数据帧的行.我要这样做的方法是使用match类似于这个问题的答案的函数,但是我被卡住了因为如果你使用函数重新排序节点tip.label,apephylo对象的属性不会改变ladderize.

library(ape)
tree <- read.tree(text = "(((A,B),(C,D)),E);")
tree2 <- ladderize(tree, right = FALSE)
tree$tip.label
#> [1] "A" "B" "C" "D" "E"
tree2$tip.label
#> [1] "A" "B" "C" "D" "E"
Run Code Online (Sandbox Code Playgroud)

请注意,tip.label即使树的可视化表示没有改变,它的顺序也没有改变.在这个简单的例子中,ladderize函数之后树的视觉顺序是E A B C D(在绘图后从树的底部到顶部读取).如何获取tip.label向量的副本,其中顺序反映树中节点的新顺序?

r phylogeny

8
推荐指数
1
解决办法
3427
查看次数

根据另一个数据帧中的行顺序重新排序数据帧中的行

我是一个新的R用户,也是StackOverflow的新用户.我会尽力简明扼要地问我的问题,如果没有以最好的方式传达我的道歉.

我正在使用两个数据帧.我想重新排序一个数据帧的行,以便它与第二个数据帧中的行的顺序相同,这样我就可以将数据从一个添加到另一个,其格式相同.我想根据行重新排序的列是具有不同观察区域的字符串标识符的列.

第一个数据帧"dfverif"看起来(总结)就像

Variable Value  
DAFQX   9   
DAFQX   9   
DAFQX   9   
DAFQX   9   
DAHEI   9   
DAHEI   9   
DAHEI   9   
DAHEI   9   
BAARG   9       
BAARG   9       
BAARG   9   
BAARG   9   
CBUCG   9   
CBUCG   9   
CBUCG   9   
CBUCG   9   
DALZZ   9   
DALZZ   9   
DALZZ   9   
DALZZ   9   
Run Code Online (Sandbox Code Playgroud)

第二个数据帧"dfmax"看起来像

variable value
DALZZ   2.14
DALZZ   2.02
DALZZ   2.04
CBUCG   1.83
CBUCG   2.09
CBUCG   1.96
CBUCG   1.98
DAHEI   2.25
DAHEI   2.05
DAHEI   2.08
DAFQX   2.12
DAFQX   2.12
DAFQX   2.04
BAARG   2.12
BAARG   2.56
BAARG   2.56 …
Run Code Online (Sandbox Code Playgroud)

r rows dataframe

4
推荐指数
1
解决办法
7628
查看次数

如何按包含不同位数的字符串的列对 data.frame 进行排序?

我想像这样对 df 进行排序:

library(dplyr)
tags <- c("F23-F45", "A69-1008-1", "A69-1008-10", "A69-1008-10", "A69-1008-100", "A69-1008-12")
animal_names <- c("Dim","Dami", "Pet", "Nic", "Li", "Tan")

df <- tibble(tag = tags, animal_name = animal_names)
# A tibble: 6 x 2
  tag          animal_name
  <chr>        <chr>      
1 F23-F45      Dim        
2 A69-1008-1   Dami       
3 A69-1008-10  Pet        
4 A69-1008-10  Nic        
5 A69-1008-100 Li         
6 A69-1008-12  Tan
Run Code Online (Sandbox Code Playgroud)

我想先按 排序tag,然后再按 排序animal_name。通常我使用arrange()dplyr 包的功能来完成此操作。这将导致这个 df:

> df %>% arrange(tag, animal_name)
# A tibble: 6 x 2
  tag          animal_name
  <chr> …
Run Code Online (Sandbox Code Playgroud)

r

0
推荐指数
1
解决办法
1906
查看次数

如何使用 dplyr 中的 match 根据外部向量对列进行排序?

我有一个数据框 df:

df <- data.frame(a = c("b2","d2","a1","c1"), b = c(12, 3, 54, 4))
> df
   a  b
1 b2 12
2 d2  3
3 a1 54
4 c1  4
Run Code Online (Sandbox Code Playgroud)

和一个外部向量,我希望其顺序a匹配:

vec <- c("a1","b2","c1","d2")
Run Code Online (Sandbox Code Playgroud)

通常我可以使用以下方法执行此操作match

df <- df[match(vec, df$a),]

> df
   a  b
3 a1 54
1 b2 12
4 c1  4
2 d2  3
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有办法在 dplyr 中做到这一点。我尝试过以下方法,但没有成功:

df <- df %>%
    mutate(
        a = match(vec, a)
    )
> df
  a  b
1 3 12
2 1 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

0
推荐指数
1
解决办法
1212
查看次数

标签 统计

r ×7

dataframe ×2

dplyr ×2

sorting ×2

dataset ×1

phylogeny ×1

r-faq ×1

rows ×1