【问题标题】:Unable to save a data.frame after using group_by and summarise functions in R (dplyr)在 R (dplyr) 中使用 group_by 和汇总函数后无法保存 data.frame
【发布时间】:2016-08-18 00:36:13
【问题描述】:
data_different_tech_count <- data_different_tech %>% 
                                 group_by(tech) %>% 
                                 summarise(count(tech))

现在这给了我一个 data.frame 作为输出,但我无法保存文件。当我尝试更改 colnames 时,它会显示:

colnames(data1)[c(1,2)]<- c("tech","count")

colnames&lt;-(*tmp*, value = c("tech", "count")) 中的错误: 'names' 属性 [2] 必须与向量 [1] 长度相同

当我使用时

colnames(data_different_count_tech)

它说我只有一列。 当我使用

summary(data_different_count_tech)

它显示了两列。

当我尝试将此文件写入我的目录时,它会返回以下错误。

write.csv(file=data_different_tech_count,"tech.csv")

矩阵错误(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, : 'dimnames' [2] 的长度不等于数组范围

【问题讨论】:

  • 我认为你需要summarise (count = n ())。但是您还没有命名您创建的变量,我不确定 dplyr 将如何处理它。

标签: r csv dplyr


【解决方案1】:

您是否要计算tech 的每个值出现的次数?如果没有可重复的示例,我无法让您的示例正常工作。

如果是这样,这里有一些替代方案可以满足您的需求:

使用 Dplyr

data_different_tech_count <- data_different_tech %>% group_by(tech) %>% summarise(count = n())

使用基础 R

data_different_tech_count <- as.data.frame(table(data_different_tech$tech)) 
colnames(data_different_tech_count) <- c("tech","count")

【讨论】:

  • 嗨 Michael Gao,是的,我有一个带有一列的 data.frame。它有一些因素,有些正在重复。现在我需要计算另一列中每个因子的计数。您发送给我的上述代码也给我一个错误,说 Error in n() : This function should not be called directly
  • 以上答案是正确的,但基本上是 dplyr 和 plyr 的依赖问题。分离 plyr 并运行,它正在工作。
猜你喜欢
  • 2021-08-13
  • 2021-01-19
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 1970-01-01
  • 2016-09-25
  • 2022-01-10
相关资源
最近更新 更多