为什么无法将值分配给数据帧中的空白位置,返回"替换有 1 行,数据有 0 行"



我有一个列表,其元素是数据框。对于这些数据框,存在一些缺失值。我不想将它们留空,因此我编写了一个循环来将"AAAAA"分配给空白位置。但它返回

Error in `$<-.data.frame`(`*tmp*`, "applicable_manufacturer_or_applicable_gpo_making_payment_name",  : 
replacement has 1 row, data has 0

数据框有 0 行

list(Teaching_Hospital_ID = character(0), teaching_hospital_name = character(0), 
physician_primary_type = character(0), physician_specialty = character(0), 
recipient_zip_code = character(0), total_amount_of_payment_usdollars = numeric(0), 
submitting_applicable_manufacturer_or_applicable_gpo_name = character(0), 
applicable_manufacturer_or_applicable_gpo_making_payment_name = character(0), 
date_of_payment = character(0), recipient_state = character(0), 
physician_last_name = character(0), physician_first_name = character(0), 
totalpayment = numeric(0))

我的代码是(数据是那个列表(

for (i in 1:length(DATA)) {
if(isTRUE(length(DATA[[i]]$applicable_manufacturer_or_applicable_gpo_making_payment_name) == 0)) {
DATA[[i]]$applicable_manufacturer_or_applicable_gpo_making_payment_name <- "AAAAA"
}
}

我想知道为什么会发生此错误以及如何解决它

根据您的评论,这里有一种更简单的lapply方法 -

DATA <- lapply(DATA, function(x) {
if(nrow(x) == 0) {
x[1, "applicable_manufacturer_or_applicable_gpo_making_payment_name"] <- "AAAAA"
}
x
})

最新更新