gpt4 book ai didi

r - 有条件地向 data.frame 添加行

转载 作者:行者123 更新时间:2023-12-02 09:26:28 27 4
gpt4 key购买 nike

我有一个很大的 data.frame 植物中的花朵和水果,用于 30 年的调查。我想在一些行中添加零 (0),这些行代表植物没有水果(因为它是季节性物种)的特定月份的个体。

示例:

Year Month Flowers Fruits
2004 6 25 2
2004 7 48 4
2005 7 20 1
2005 8 16 1

我想添加不包含在零值中的月份,所以我想在一个函数中识别缺失的月份并用 0 填充它们。

谢谢。

最佳答案

## x is the data frame you gave in the question

x <- data.frame(
Year = c(2004, 2004, 2005, 2005),
Month = c(6, 7, 7, 8),
Flowers = c(25, 48, 20, 16),
Fruits = c(2, 4, 1, 1)
)

## y is the data frame that will provide the missing values,
## so you can replace 2004 and 2005 with whatever your desired
## time interval is

y <- expand.grid(Year = 2004:2005, Month = 1:12)

## this final step fills in missing dates and replaces NA's with zeros

library(tidyr)
x <- merge(x, y, all = TRUE) %>%
replace_na(list(Flowers = 0, Fruits = 0))

## if you don't want to use tidyr, you can alternatively do

x <- merge(x, y, all = TRUE)
x[is.na(x)] <- 0

看起来像这样:

head(x, 10)

# Year Month Flowers Fruits
# 1 2004 1 0 0
# 2 2004 2 0 0
# 3 2004 3 0 0
# 4 2004 4 0 0
# 5 2004 5 0 0
# 6 2004 6 25 2
# 7 2004 7 48 4
# 8 2004 8 0 0
# 9 2004 9 0 0
# 10 2004 10 0 0

关于r - 有条件地向 data.frame 添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37579756/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com