📜  如何修复:在 R 中找不到函数“%>%”

📅  最后修改于: 2022-05-13 01:54:51.307000             🧑  作者: Mango

如何修复:在 R 中找不到函数“%>%”

在本文中,我们将看到如何修复,在 R 编程语言中找不到函数“%>%”。引入管道运算符%>% 是为了减少时间并提高代码的可读性和可维护性。未加载或安装 R 包时可能会发生此错误。

方法一:使用 magrittr 包

产生错误

在 R 中重现错误消息“找不到函数“%>%”。例如,这里我们使用“%>%”运算符来获取 sqrt 的总和。

R
1:8 %>% sum %>% sqrt


R
library("magrittr")
1:8 %>% sum %>% sqrt


R
# create data frame
df <- data.frame(Sub = c('Math', 'Math', 'Phy', 
                         'Phy', 'Phy', 'Che', 'Che'),
                 Marks = c(8, 2, 4, 9, 9, 7, 1),
                 Add_on = c(3, 1, 9, 4, 7, 8, 2))
  
# Specify data frame
df %>%        
  # Specify group indicator
  group_by(Sub) %>%                      
   
  # Specify column
  summarise_at(vars(Marks),              
               list(name = sum))


R
# create data frame
df <- data.frame(Sub = c('Math', 'Math', 'Phy', 
                         'Phy', 'Phy', 'Che', 'Che'),
                 Marks = c(8, 2, 4, 9, 9, 7, 1),
                 Add_on = c(3, 1, 9, 4, 7, 8, 2))
  
library(dplyr) 
df %>%                                        
  group_by(Sub) %>%                        
  summarise_at(vars(Marks),         
               list(name = sum))


输出:

Error in 1:8 %>% sum %>% sqrt: could not find function "%>%"
Traceback:

怎么修

它只能使用相关包修复(magrittr)

R

library("magrittr")
1:8 %>% sum %>% sqrt

输出:

6

方法二:使用 dplyr 包

产生错误

要在 R 中重现错误消息“找不到函数“%>%””。例如,这里我们使用“%>%”运算符来 group_by()函数,然后是 summarise()函数和适当的操作去表演。

R

# create data frame
df <- data.frame(Sub = c('Math', 'Math', 'Phy', 
                         'Phy', 'Phy', 'Che', 'Che'),
                 Marks = c(8, 2, 4, 9, 9, 7, 1),
                 Add_on = c(3, 1, 9, 4, 7, 8, 2))
  
# Specify data frame
df %>%        
  # Specify group indicator
  group_by(Sub) %>%                      
   
  # Specify column
  summarise_at(vars(Marks),              
               list(name = sum))

输出:

怎么修

它只能使用相关包修复(dplyr)

R

# create data frame
df <- data.frame(Sub = c('Math', 'Math', 'Phy', 
                         'Phy', 'Phy', 'Che', 'Che'),
                 Marks = c(8, 2, 4, 9, 9, 7, 1),
                 Add_on = c(3, 1, 9, 4, 7, 8, 2))
  
library(dplyr) 
df %>%                                        
  group_by(Sub) %>%                        
  summarise_at(vars(Marks),         
               list(name = sum))

输出:

Sub name
Che 8
Math 10
Phy 22