分组并汇总R中的字符?

时间:2019-01-16 21:06:07

标签: r

我在R

> con_promedio_por_curso_transpuesta
                A          B          C           D
Description   "Abc"     "Bcd"      "Cde"      "Def"
mean(X7)  "5.000000" "4.105263" "4.733333"  "4.680000"
mean(X8)  "5.000000" "3.736842" "4.400000"  "4.760000"     
mean(X9)  "5.000000" "3.950000" "4.600000"  "4.840000"
mean(X10) "5.000000" "4.210526" "4.333333"  "4.560000"

我要删除第一行

"Abc"     "Bcd"      "Cde"      "Def"

我执行下一条指令:

without_first_row <- con_promedio_por_curso_transpuesta[-c(1),])

直到现在,一切都还好,但是。如果我想分组并总结不带首行的行,则会出现错误。

  

UseMethod(“ group_by_”)中的错误:     没有适用于'group_by_'的适用方法应用于类“ c('matrix','character')”的对象

我运行数据类型,

> typeof(con_promedio_por_curso_transpuesta)
[1] "character"

我如何将“字符”转换为用于分组的任何类型的数据?

谢谢。

1 个答案:

答案 0 :(得分:0)

在创建without_first_row的位置附近,语法有误,请按照以下步骤操作:

con_promedio_por_curso_transpuesta <-
  data.frame(
    row.names = c('Description','mean(X7)','mean(X8)','mean(X9)','mean(X10)'),
    'A' = c("Abc","5.000000","5.000000","5.000000","5.000000"),
    'B' = c("Bcd","4.105263","3.736842","3.950000","4.210526"),
    'C' = c("Cde","4.733333","4.400000","4.600000","4.333333"),
    'D' = c("Def","4.680000","4.760000","4.840000","4.560000"),
    'ID' = c(NA, 1, 1, 2, 2) # added for this example
  )

## without_first_row <- con_promedio_por_curso_transpuesta[-c(1), ]) <- this is your error, you added a ')' unnecessarily

without_first_row <- con_promedio_por_curso_transpuesta[-c(1), ] # with fixed syntax
> class(without_first_row)
[1] "data.frame"


# just to show you can group_by and summarise with data
without_first_row %>% 
  mutate_at(.vars = vars(c(A,B,C,D)), funs(as.numeric)) %>% 
  group_by(ID) %>% 
  summarise_all(mean)