如何用与R中另一列对应的现有值填充列的一部分?

如何用与R中另一列对应的现有值填充列的一部分?,r,data-cleaning,tapply,R,Data Cleaning,Tapply,我正在处理一些飞行轨迹的清理数据,“呼号”是我需要填写的必填字段 我正在处理的数据几乎有300000行,这个空白呼号的问题相当重复。我有没有办法根据相应的icao24识别号填写这些呼号 我曾尝试使用一个tapply()函数根据数据的icao24编号来分割数据,并对每个块ie应用一个函数 tapply(myDF$callsign, myDF$icao24, ...) 但我似乎无法理解我将应用于每个部分的“功能”,因为它们的名称不同。是否需要使用某种循环在每个节上迭代,并对每个节应用一个tapp

我正在处理一些飞行轨迹的清理数据,“呼号”是我需要填写的必填字段

我正在处理的数据几乎有300000行,这个空白呼号的问题相当重复。我有没有办法根据相应的icao24识别号填写这些呼号

我曾尝试使用一个tapply()函数根据数据的icao24编号来分割数据,并对每个块ie应用一个函数

tapply(myDF$callsign, myDF$icao24, ...)
但我似乎无法理解我将应用于每个部分的“功能”,因为它们的名称不同。是否需要使用某种循环在每个节上迭代,并对每个节应用一个tapply()?

如果值为空(
“”
),则按“icao24”进行分组,并用非空“callsign”的
第一个
元素替换
“”
中的
元素

library(dplyr)
df2 <- df1%>%
   group_by(icao24) %>%
   mutate(callsign = replace(callsign, callsign == "", 
            first(callsign[callsign != ""])))

非常感谢。我已经在整个数据帧中运行了代码和输出结果。有没有办法将其存储在新的数据框中或替换现有列?@KarthikUppuluri您可以将
df2%…
分配给不同的对象或Same。我已经运行了代码,在查看我的新数据框后,该列中的所有空白元素似乎都已被callsign的第一个元素替换(非空白)而不是相应的周围呼号。如何将其指定为我需要替换周围元素的R?@KarthikUppuluri这是第一种情况的代码。如果是相邻元素,则带有
fill
的第二个代码块应该可以工作
library(tidyr)
df2 <- df1 %>%
   mutate(callsign = na_if(callsign, "")) %>%
   group_by(icao24) %>%
   fill(callsign)