【发布时间】:2020-06-16 23:31:55
【问题描述】:
我有一个如下所示的数据框:
df <- data.frame(Name = c("BB", "AA", "AA", "BB", "DD", "AA", "DD", "DD", "CC"),
string = c("a11", "a120", "a120", "a8", "a45", "a11", "a140", "a8", "a45") ,
value = rnorm(9, mean = 0, 1))
Name string value
BB a11 0.5912728
AA a120 0.5885065
AA a120 -0.5287264
BB a8 0.6932831
DD a45 -0.2892612
AA a11 1.0441365
DD a140 -0.5091612
DD a8 -0.3358695
CC a45 0.5598616
我想重新排序 df,使其根据数字部分 pf 字符串列进行排序。
我正在尝试以下命令:
string <- unique(as.character(df$string))
sorted.ind <- sort(as.numeric(gsub('a', '', string)), index.return = T)$ix
df$string <- factor(df$string, levels = string[sorted.ind])
但它也不会重新排序表。
这是我想要的输出:
Name string value
BB a8 0.6932831
DD a8 -0.3358695
BB a11 0.5912728
AA a11 1.0441365
DD a45 -0.2892612
CC a45 0.5598616
AA a120 0.5885065
AA a120 -0.5287264
DD a140 -0.5091612
有人知道如何修复我的代码吗?
谢谢
【问题讨论】: