首页 > 解决方案 > R名称()没有看到所有变量

问题描述

我有一个数据框'prog',我想更改变量的名称。我可以查看“prog”并看到它有 3 个变量,但是当我尝试使用“names()”重命名这些变量时,我收到一条错误消息,说我必须将参数的数量与“prog”的长度相匹配' 它声称是 2。我对 R 很陌生,并假设我正在以一种糟糕的方式创建 'prog',但我不知道具体如何。

prog <- 
  pro %>%
  group_by(totexp_rng) %>%
  summarize(sqrt(var(food_t))*1.2816)
prog <-
  prog %>%
  mutate(
    totexp_rng = pro %>%
    group_by(totexp_rng) %>%
    summarize(mean(food_t))
  )
names(prog) <- c("totexp_rng","mean","to90")

标签: r

解决方案


那是因为您将数据框/小标题保存在totexp_rng. 这不是使用dplyr.

您应该始终在summarise/mutate调用中命名变量,这将避免以后需要重命名变量。summarise此外,您可以在/中应用多个函数,mutate 因此您可以将代码简化为 -

library(dplyr)

prog <- pro %>%
  group_by(totexp_rng) %>%
  summarize(to90 = sqrt(var(food_t))*1.2816, 
            totexp_rng = mean(food_t))

推荐阅读