我有一个列表,其元素是数据框。对于这些数据框,存在一些缺失值。我不想将它们留空,因此我编写了一个循环来将"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
})