gpt4 book ai didi

使用数据帧上的循环将 R 中的 NA 替换为 0

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

我想遍历数据框中的特定列,并使用循环将所有 NA 替换为 0。

extract = read.csv("2013-09 Data extract.csv")
extract$Premium1[is.na(extract$Premium1)] <- 0
extract$Premium1

在数据框 extract 中为 Premium1 提供了所需的结果,但我想遍历所有 27 列 premium,所以我正在尝试的是

extract = read.csv("2013-09 Data extract.csv")

for(i in 1:27) {
thispremium <- get(paste("extract$Premium", i, sep=""))
thispremium[is.na(thispremium)] <- 0
}

给出

Error in get(paste("extract$Premium", i, sep = "")) : 
object 'extract$Premium1' not found

知道导致错误的原因吗?

最佳答案

您是否因为其他要求而需要循环?因为没有它也能正常工作:

extract[is.na(extract)] <- 0

如果只想对某些列进行替换,请先选择这些列,执行替换,然后将这些列替换回原始集合:

first5 <- extract[, 1 : 5]
first5[is.na(first5)] <- 0
extract[, 1 : 5] <- first5

更一般地说,在 R 中几乎可以(并且应该)避免循环——尤其是在处理数据帧时)。通常操作会自动矢量化(如上)。如果没有,则可以使用 apply 系列的函数。

关于使用数据帧上的循环将 R 中的 NA 替换为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19383987/

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