You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用write.csv配合count函数导出CSV内容混乱是什么原因?

问题产生原因

  • dplyr::count()函数返回的结果是tibble(结构化数据框)类型,你使用count(df, treatment)[2]的语法是提取该tibble的第二列,返回的依旧是一个3行1列的tibble结构,而非你预期的原子向量/单个数值。
  • 当你在mutate()中将这个单列tibble赋值给新列times时,tibble结构会被作为列表列塞入每一行的单元格中,因此每个单元格的存储内容都是完整的3行计数结果,导出CSV时就会显示为c(3,3,3)的文本格式。

修复方案

你可以将提取计数的语法替换为取原子向量的写法,就能得到预期的每行对应分组计数的结果:

# 写法1:用$提取指定列的向量
mutate(times = count(df, treatment)$n, thing = mean + sum)
# 写法2:用双中括号提取列的向量
mutate(times = count(df, treatment)[[2]], thing = mean + sum)
# 写法3:更高效的方式,直接在分组统计时计算行数,不需要额外调用count
df_test1 <- df %>%
  group_by(treatment) %>%
  summarise(mean = mean(numb), sum = sum(numb), times = n()) %>% 
  mutate(thing = mean + sum)

修复后导出的CSV文件中,times列会正常显示每个分组对应的数值3。

内容的提问来源于stack exchange,提问作者pabstack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:15:02