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

如何用R的tidyverse补全缺失水果类别并设置数量为0?

使用tidyverse补全指定用户的缺失水果类别

解决方案代码

以下是精准匹配需求的实现代码:

# 加载tidyverse工具包
library(tidyverse)

# 读取CSV文件,保留Qty的字符格式以维持前导零(如"09")
df <- read_csv("your_file.csv", col_types = cols(Qty = col_character()))

# 定义需要补充的缺失行
additional_entries <- tribble(
  ~Name, ~Fruit, ~Qty,
  "Wikfae", "Pear", "0",
  "Moigaw", "Apple", "0"
)

# 合并原数据与补充行,按Name排序匹配示例输出
final_df <- df %>%
  bind_rows(additional_entries) %>%
  arrange(Name)

# 查看处理结果
final_df

# 可选:将结果保存为新CSV文件
write_csv(final_df, "completed_data.csv")

关键说明

  • 保留前导零:原数据中Qty列包含"09"这类带前导零的内容,通过col_types = cols(Qty = col_character())指定读取为字符型,避免自动转为数值型丢失前导零。若无需保留前导零,可删除该参数,补充行的Qty设为数值0即可。
  • 精准补全:通过tribble()手动构建需要补充的行,仅为指定用户添加缺失的水果类别,不会改动其他用户的原有数据。
  • 排序对齐示例:使用arrange(Name)让结果按用户名排序,与你提供的期望输出顺序一致。

通用补全方案(可选)

如果后续需要为所有用户补全所有存在的水果类别(比如每个用户都要有Apple和Pear),可以用complete()函数一键生成所有组合并填充缺失值:

df %>%
  complete(Name, Fruit, fill = list(Qty = "0"))

注意:该方案会为Tauwen补充Pear、为Tauewn补充Apple,若不需要此效果,请使用前面的精准补全方案。

内容的提问来源于stack exchange,提问作者Ginko-Mitten

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:01:06