【问题标题】:How to use get()to call on a variable in a function in R?如何使用 get() 调用 R 函数中的变量?
【发布时间】:2022-01-11 10:38:18
【问题描述】:

我正在尝试在函数中使用 get()。有时它有效,有时则无效。数据为:

ID<-c("001","002","003","004","005","006","007","008","009","010","NA","012","013")
Name<-c("Damon Bell","Royce Sellers",NA,"Cali Wall","Alan Marshall","Amari Santos","Evelyn Frye","Kierra Osborne","Mohammed Jenkins","Kara Beltran","Davon Harmon","Kaitlin Hammond","Jovany Newman")
Sex<-c("Male","Male","Male",NA,"Male","Male",NA,"Female","Male","Female","Male","Female","Male")
Age<-c(33,27,29,26,27,35,29,32,NA,25,34,29,26)
data<-data.frame(ID,Name,Sex,Age)

它适用于这样的一些代码:

FctPieChart <- function(data,Var){
  
  dVar <- data %>%
    filter(!is.na(get(Var))) %>%
    group_by(get(Var)) %>% #changes the name of the column to "`get(Var)`"
    summarise(Count = n()) %>%
    mutate(Total = sum(Count), Percentage = round((Count/Total),3))
}  
FctPieChart(data,"Sex")

它在其他一些代码中不起作用:

FctPieChart <- function(data,var){
  x <- data %>% 
    select(get(var))
  x
  
}  
FctPieChart(data,"Sex")

上面写着:

<error/simpleError>
object 'Sex' not found

有人知道为什么吗?

非常感谢您!

最好的问候,

斯蒂芬妮

【问题讨论】:

    标签: r function variables get


    【解决方案1】:

    使用dplyr::select(),您不需要使用get()。而是使用select(var)

    > FctPieChart <- function(data,var){
       x <- data %>% 
         select(var)
       x
     }  
    > FctPieChart(data,"Sex")
          Sex
    1    Male
    2    Male
    3    Male
    4    <NA>
    5    Male
    6    Male
    7    <NA>
    8  Female
    9    Male
    10 Female
    11   Male
    12 Female
    13   Male
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 2020-10-16
      • 1970-01-01
      相关资源
      最近更新 更多