我想遍历数据框中的特定列,并使用循环将所有NA替换为0。
extract = read.csv("2013-09 Data extract.csv")
extract$Premium1[is.na(extract$Premium1)] <- 0
extract$Premium1
这段代码能为数据框 extract
中的 Premium1
列提供所需的结果,但我想循环遍历所有27列的保险费,所以我正在尝试以下代码:
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
有没有想法是什么导致了这个错误?
get("extract")[[paste0("Premium",i)]]
,尽管它看起来很别扭。为什么你需要用get
取'extract'呢?为什么不直接写成:extract[[paste0("Premium",i)]]
呢? - IRTFMfor(i in 1:27) { extract[[paste0("Premium", i)]][is.na(extract[[paste0("Premium", i)]])] <-0 }
这段代码,它可以给出所需的结果。 - Aaa