如何在数据框中用正确的纬度和经度替换NA?

时间:2018-05-02 00:13:34

标签: r dplyr data-manipulation

我有一个数据框,如下所示。我怎样才能更换NA?看起来对于相同的设备,源和时间戳lat和long也是一样的。因此,NA值应为:aaa,US,33.23,-117.31为第2行。我在想正确的方法吗?如果没有,那么以正确的方式替换这些缺失值的最佳方法是什么?

const scope = { sellAccessories: [] };
scope.sellAccessories[0] = [{
  id: [178],
  item_name: ["Nescafe", "ggfftrww"],
  quantity: [1],
  total_price: [300]
}]
const { item_name } = scope.sellAccessories[0][0];
item_name.splice(item_name.indexOf('ggfftrww'));
console.log(item_name);

提前致谢。

2 个答案:

答案 0 :(得分:3)

尝试fill,它是tidyr包的一部分。 (与dplyr一样,它是tidyverse套件包的一部分。)

df <- df %>%
  group_by(device, source, timestamp) %>%
  fill(city, country, lat, long)

答案 1 :(得分:1)

来自zoo

zoo::na.locf(df)
  city country   lat    long          timestamp source device
1  aaa      US 33.23 -117.31 2015-04-1211:51:16     ad      w
2  aaa      US 33.23 -117.31 2015-04-1211:51:16     ad      w
3  bbb      US 33.78 -117.96 2015-04-1211:51:16     se      m
4  bbb      US 33.78 -117.96 2015-04-1211:51:16     se      m
5  aaa      US 33.23 -117.31 2015-04-1211:51:16     ad      w