【发布时间】:2014-06-06 21:54:26
【问题描述】:
我有一个中等大小的数据框,里面有两行被破坏的行。地址不好,所以geocode() 没有对它们进行地理编码,所以我也没有纬度/经度信息。
我尝试制作一个临时框架来玩:
tmp.frame <- subset(all.sites, is.na(all.sites$lat))
我可以用tmp.frame$Address <- c("Better Address 1","Better Addresss 2") 更新tmp.frame 中的值,但我似乎无法编辑较大框架中的值。 all.sites[392, 7] 是缺少纬度/经度的地方之一,我 thought 认为 all.sites[392, 7] = c("Better Addy") 可以解决问题,但我得到了这个:
Warning message:
In `[<-.factor`(`*tmp*`, iseq, value = "Better Addy") :
invalid factor level, NA generated
奇怪的是,tmp.frame[2,4] = c("Better") 工作得很好。所以我不确定两者之间的区别是什么。
注意:当我尝试vi(all.sites[392,7]) 时,我大概明白了:
structure(NA_integer_, .Label = c("10003 39th Avenue",..., class = "factor")
【问题讨论】:
-
我认为问题可能在于您的某些列被转换为因子,而不是数字或字符。如果是这种情况,这可能是相关的:stackoverflow.com/questions/2851015/…
-
是的,您正在尝试将字符类值放入可能是因子类列的位置。也许
tmp.frame$Address <- as.factor(c("Better Address 1","Better Addresss 2"))会起作用 -
@Csislander 听起来不错。谢谢。
标签: r