有人可以帮我给 %>% 一个功能吗
Can someone help me give a function to %>%
我正在尝试让 %>% 类似于这样的函数
phase<-csvdata%>%
filter(csvdata$phase=="test")
或者像这样
mergedrows1<-phase%>%
group_by(phase$subject,phase$phase)
我可以将数据框中的特定变量组合在一起。
%>%
管道的想法是将第一个参数(通常保留用于您在大多数管道友好函数中操作的数据框的名称)移到管道之前。换句话说,f(x, y)
等同于 x %>% f(y)
。用简单的英语来说,可以将其视为“获取此数据然后应用此功能”。
您的代码存在的问题是,您在一个数据框中调用了一个变量两次,这让 dplyr
函数(如 filter()
和 group_by()
感到困惑)。当您说 csvdata %>%
时调用数据框一次,当您说 csvdata$phase
时调用数据框一次。您不需要在 tidyverse 设置中使用 dataframe$variable
。事实上,这正是管道希望您避免做的事情。
相反,您只需要执行以下操作:
phase <- csvdata %>%
filter(phase == "test")
或
mergedrows1 <- phase %>%
group_by(subject, phase)
此外,为数据框和数据框内的变量赋予相同的名称是个坏主意。 R 不会弄糊涂,但你或 reader 的代码会弄糊涂。
我正在尝试让 %>% 类似于这样的函数
phase<-csvdata%>%
filter(csvdata$phase=="test")
或者像这样
mergedrows1<-phase%>%
group_by(phase$subject,phase$phase)
我可以将数据框中的特定变量组合在一起。
%>%
管道的想法是将第一个参数(通常保留用于您在大多数管道友好函数中操作的数据框的名称)移到管道之前。换句话说,f(x, y)
等同于 x %>% f(y)
。用简单的英语来说,可以将其视为“获取此数据然后应用此功能”。
您的代码存在的问题是,您在一个数据框中调用了一个变量两次,这让 dplyr
函数(如 filter()
和 group_by()
感到困惑)。当您说 csvdata %>%
时调用数据框一次,当您说 csvdata$phase
时调用数据框一次。您不需要在 tidyverse 设置中使用 dataframe$variable
。事实上,这正是管道希望您避免做的事情。
相反,您只需要执行以下操作:
phase <- csvdata %>%
filter(phase == "test")
或
mergedrows1 <- phase %>%
group_by(subject, phase)
此外,为数据框和数据框内的变量赋予相同的名称是个坏主意。 R 不会弄糊涂,但你或 reader 的代码会弄糊涂。