我有以下数据集:
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
请让我知道,如果你知道为什么上面的代码失败.谢谢!
1条答案
按热度按时间qaxu7uf21#
在dplyr的最新版本中,使用
:=
设置带有字符值的名称,使用.data[[]]
获取带有字符值的列。