在函数内使用dplyr替换数据

时间:2016-01-21 11:16:10

标签: r function dplyr

enter image description here我正在尝试生成图表并生成适当的表我需要使用函数。我写了以下代码片段: -

library(dplyr)
library(reshape)

x<-function(test)
       {
      test0 <- sprintf(test)
      tableResgroup  <-  count(table1,"test0")
      return(test0)
       }

x("R Co")

问题是该值正确传递到test0但是dplyr抛出一个错误,说test0不是有效的列名,这是有道理的。

因为我是R的新手,任何人都可以帮忙吗?我有一个列(名称中有空格),需要在此列上对数据集进行子集化。手动它一切正常(我使用count(table1,R co) - R co在单个刻度中,但我需要编写一个函数,因为我的名字中有很多列有空格,我打算将它们作为参数传递给我的功能。

数据

table1 <- structure(list(Rco = structure(c(1L, 1L, 1L, 2L, 2L, 2L), 
    .Label = c("A220", "B334"), class = "factor"), 
    month = structure(c(2L, 1L, 3L, 2L, 1L, 3L), .Label = c("Feb", "Jan", "Mar"), class = "factor"), 
    Count = c(12, 22, 33, 44, 55, 66)), 
    .Names = c("Rco", "month", "Count"), 
    row.names = c(NA, 6L), class = "data.frame")

## the column Rco has a space, so re-name it:
names(table1)[1] <- "R co"

enter image description here

1 个答案:

答案 0 :(得分:0)

我尝试了以下内容并且有效: -

library(dplyr) 
library(reshape) 
x<-function(test) 
  { 
  tableResgroup <- count(table1,table1$`test`) 
  tableResgroup <- reshape::rename(tableResgroup,c("table1$test0"=test)) 
  } 
tableResgroup <- x("R Co")

如果有人有替代方式,请告诉我,因为我不确定这是多么优雅。

由于