我有一個看起來像這樣的資料框
df <- data.frame(time=seq(1,4,1),col1=c("a","b","d","c"), col2=c("d","a","c","b"))
df
#> time col1 col2
#> 1 1 a d
#> 2 2 b a
#> 3 3 d c
#> 4 4 c b
由reprex 包(v2.0.1)于 2021 年 11 月 6 日創建
我想根據 col2 對我的資料框進行排序,看起來像這樣
time col1 col2
3 d d
1 a a
4 c c
2 b b
任何想法或幫助都非常感謝!
uj5u.com熱心網友回復:
不知道,如果這有任何意義,但您可以進行自連接:
library(tidyr)
library(dplyr)
df %>%
select(col2) %>%
inner_join(df %>% mutate(col2 = col1), by = "col2") %>%
select(time, col1, col2)
這回傳
time col1 col2
1 3 d d
2 1 a a
3 4 c c
4 2 b b
uj5u.com熱心網友回復:
基礎 R 中的解決方案:
df <- data.frame(time = match(df$col2,df$col1), col1 = df$col2, col2=df$col2)
#> time col1 col2
#> 1 3 d d
#> 2 1 a a
#> 3 4 c c
#> 4 2 b b
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/350433.html
上一篇:有沒有比R中的stats:uniroot函式更快的替代方法?
下一篇:在R中的模式之間粘貼字串
