gpt4 book ai didi

r - 尝试替换值时, "missing values are not allowed in subscripted assignments of data frames"

转载 作者:行者123 更新时间:2023-12-03 08:27:32 27 4
gpt4 key购买 nike

我有一个包含两列的表格:您是否生病(H01)和生病天数(H03)。但是,如果 H01 == false,生病天数为 NA,我想将其设置为 0。当我这样做时:

test <- pe94.person[pe94.person$H01 == 12,]
test$H03 <- 0

它工作正常。但是,我想替换原始数据框中的值。然而,这失败了:
pe94.person[pe94.person$H01 == 12,]$H03 <- 0

它返回:
> pe94.person[pe94.person$H01 == 12,]$H03 <- 0
Error in `[<-.data.frame`(`*tmp*`, pe94.person$H01 == 12, , value = list( :
missing values are not allowed in subscripted assignments of data frames

知道这是为什么吗?对于它的值(value),这是一个频率表:
> table(pe94.person[pe94.person$H01 == 12,]$H03)

2 3 5 28
3 1 1 1

最佳答案

您可以使用 ifelse ,像这样

pe94.person$foo <- ifelse(!is.na(pe94.person$H01) & pe94.person$H01 == 12, 0, pe94.person$H03)

检查 foo 是否符合您的条件,然后继续将其分配给 pe94.person$H03直接地。我发现为其分配一个新变量并通常在后续分析中使用它更安全。

关于r - 尝试替换值时, "missing values are not allowed in subscripted assignments of data frames",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396279/

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