我有一个看起来像这样的数据框:
Id a1 a2 a3
+--+---+---+---+
1 |5 |45 |4
2 |2 |12 |79
3 |7 |8 |56
我想创建一个新的数据框,该框将按值m为所有列供电,但id列除外。这是我到目前为止所拥有的:
dfCluster = U.select(* ( ( pow(col(c),m )).alias(c) for c in U.columns))
,但是此代码为所有列(包括“ Id”列)提供动力。我也尝试了这段代码:
dfCluster = U.select(* ( ( pow(col(c),m )).alias(c) for c in U.columns if c not in 'ColumnIndex'))
,但是在新数据框中,我根本没有获得“ Id”列,但我需要。有什么想法可以为除“ Id”列之外的所有表供电吗?
答案 0 :(得分:1)
只需使用一个简单的生成器表达式,将library(tidyverse)
df %>%
arrange(match(str_remove(id, "-\\d+"), c("cx", "rx", "px")),
readr::parse_number(as.character(id)), desc(value))
# id value
#1 cx-03 2
#2 cx-03 1
#3 cx-02 3
#4 cx-02 2
#5 cx-02 1
#6 cx-01 2
#7 cx-01 1
#8 rx-03 2
#9 rx-03 1
#10 rx-02 3
#11 rx-02 2
#12 rx-02 1
#13 rx-01 2
#14 rx-01 1
#15 px-03 2
#16 px-03 1
#17 px-02 3
#18 px-02 2
#19 px-02 1
#20 px-01 2
#21 px-01 1
留在外面:
Id