尝试存储从函数估算的值失败
Failed attempt to store values imputed from a function
帮助大家,我正在尝试使用函数来估算缺失值,函数本身在这方面有效,但无法存储估算值。
函数如下所示,gh_Df为数据集; val
是 FacilityName 变量中的值,lat
和 long
是我希望填写的相应值。
fill_lat_long_na <- function(val, lat, long){
if(is.na(gh_Df[gh_Df$FacilityName == val,]$Latitude)){
gh_Df[gh_Df$FacilityName == val,]$Latitude <- lat
gh_Df[gh_Df$FacilityName == val,]$Longitude <- long
}
print(gh_Df[gh_Df$FacilityName == val,])
}
## Check
fill_lat_long_na("Yapesa St.Mary Clinic", 6.43011, -1.33299)
结果
Latitude
Longitude
6.43011
-1.33299
但是,如果我返回并运行函数外的以下内容,它仍然显示空/NA行。
print(gh_Df[gh_Df$FacilityName == "Yapesa St.Mary Clinic",])
结果
Latitude
Longitude
NA
NA
有没有办法解决这个问题,并且数据集中的值实际上会发生变化?
谢谢。
通常从函数内部更改数据框不是一个好习惯。您可以 return
更改后的数据框并将其保存在函数外部。
fill_lat_long_na <- function(val, lat, long){
if(is.na(gh_Df[gh_Df$FacilityName == val,]$Latitude)){
gh_Df[gh_Df$FacilityName == val,]$Latitude <- lat
gh_Df[gh_Df$FacilityName == val,]$Longitude <- long
}
return(gh_Df)
}
gh_Df <- fill_lat_long_na("Yapesa St.Mary Clinic", 6.43011, -1.33299)
gh_Df
帮助大家,我正在尝试使用函数来估算缺失值,函数本身在这方面有效,但无法存储估算值。
函数如下所示,gh_Df为数据集; val
是 FacilityName 变量中的值,lat
和 long
是我希望填写的相应值。
fill_lat_long_na <- function(val, lat, long){
if(is.na(gh_Df[gh_Df$FacilityName == val,]$Latitude)){
gh_Df[gh_Df$FacilityName == val,]$Latitude <- lat
gh_Df[gh_Df$FacilityName == val,]$Longitude <- long
}
print(gh_Df[gh_Df$FacilityName == val,])
}
## Check
fill_lat_long_na("Yapesa St.Mary Clinic", 6.43011, -1.33299)
结果
Latitude | Longitude |
---|---|
6.43011 | -1.33299 |
但是,如果我返回并运行函数外的以下内容,它仍然显示空/NA行。
print(gh_Df[gh_Df$FacilityName == "Yapesa St.Mary Clinic",])
结果
Latitude | Longitude |
---|---|
NA | NA |
有没有办法解决这个问题,并且数据集中的值实际上会发生变化?
谢谢。
通常从函数内部更改数据框不是一个好习惯。您可以 return
更改后的数据框并将其保存在函数外部。
fill_lat_long_na <- function(val, lat, long){
if(is.na(gh_Df[gh_Df$FacilityName == val,]$Latitude)){
gh_Df[gh_Df$FacilityName == val,]$Latitude <- lat
gh_Df[gh_Df$FacilityName == val,]$Longitude <- long
}
return(gh_Df)
}
gh_Df <- fill_lat_long_na("Yapesa St.Mary Clinic", 6.43011, -1.33299)
gh_Df