有没有办法在没有赋值的情况下在 R 中引用返回的数据帧变量?

Is there a way to reference a returned dataframe's variable in R without an assignment?

我想看看我是否可以仅使用 R 中的一个赋值和一行代码来执行以下代码。

这就是我希望它的工作方式。 Variable/Column 我希望 select 的名字是 'Diet' 和 'Time':

data.melted <- melt.data.frame(ChickWeight, measure.vars = 'weight', na.rm=T)[c(Diet == 1 | Diet == 4 & Time == 21)]

这就是我目前使用它的方式:

data.melted <- melt.data.frame(ChickWeight, measure.vars = 'weight', na.rm=T)
data.melted <- diet.data.melted[c((data.melted$Diet == 1 | data.melted$Diet == 4) & data.melted$Time == 21),]

有没有办法引用从函数返回的对象,比如保留字,这样我就可以 select 列?如:

melt.data.frame(ChickWeight, measure.vars = 'weight', na.rm=T)[ReserveWordForReturnedDF$Time,]

谢谢!

管道 (%>%) 的引入是为了避免创建此类中间对象。你可以这样做:

library(magrittr)

melt.data.frame(ChickWeight, measure.vars = 'weight', na.rm=TRUE) %>%
   dplyr::filter(Diet %in% c(1, 4) & Time == 21)