根据dplyr中的另一列获取值

2hh7jdfx  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(127)

我有以下数据集:

df <- mtcars[1:4,c("wt","qsec")]
df

                  wt  qsec
Mazda RX4      2.620 16.46
Mazda RX4 Wag  2.875 17.02
Datsun 710     2.320 18.61
Hornet 4 Drive 3.215 19.44

如何通过dplyr使用动态变量实现以下功能?

df %>% 
  mutate(wt=floor(wt[which.min(qsec)]))

这是我目前所尝试的:

myvar<-"wt"

df %>% 
  mutate(!!myvar :=floor(!!as.name(myvar)[which.min(qsec)]))

Error in which.min(qsec) : object 'qsec' not found

请让我知道,如果你知道为什么上面的代码失败.谢谢!

qaxu7uf2

qaxu7uf21#

在dplyr的最新版本中,使用:=设置带有字符值的名称,使用.data[[]]获取带有字符值的列。

df %>% mutate("{myvar}" := floor(.data[[myvar]][which.min(qsec)]))

相关问题