gpt4 book ai didi

r - 如何完成数据框中缺失的因子水平?

转载 作者:行者123 更新时间:2023-12-04 13:31:06 24 4
gpt4 key购买 nike

让我们假装我有这样的事情:

df <- data.frame(
PERSON = c("Peter", "Peter", "Marcel" , "Lisa", "Lisa"),
FRUIT = c("Apple", "Peach","Apple", "Apple", "Peach" ),
A = c(100, 200, 100, 200, 300),
B=c(1,2,3,4,5) )
df$PERSON <- as.factor(df$Person)
df$FRUIT <- factor(df$FRUIT, levels = c("Apple", "Peach", "Coconut"))
这导致
str(df): 'data.frame':  5 obs. of  4 variables:
$ PERSON: Factor w/ 3 levels "Lisa","Marcel",..: 3 3 2 1 1
$ FRUIT : Factor w/ 3 levels "Apple","Peach",..: 1 2 1 1 2
$ A : num 100 200 100 200 300
$ B : num 1 2 3 4 5
我想扩展这个数据,框架,以便每个人都有所有级别的 FRUIT 存在,如下所示:
 Person FRUIT   A B
1 Peter Apple 100 1
2 Peter Peach 200 2
3 Peter Coconut 0 0
4 Marcel Apple 100 3
5 Marcel Peach 0 0
6 Marcel Coconut 0 0
7 Lisa Apple 200 4
8 Lisa Peach 300 5
9 Lisa Coconut 0 0
A 的缺失值和 B应该填0。
我试过 tidyr::complete(df$FRUIT, 0) ,但似乎我用错了这个功能。

最佳答案

complete将第一个参数作为“数据”,然后是要扩展的列。默认情况下,fill是 NA,但我们可以通过在 list 中指定它来将其更改为 0 .

complete(df, PERSON, FRUIT, fill = list(A=0, B = 0))

关于r - 如何完成数据框中缺失的因子水平?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39961798/

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