微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用与R中的另一列相对应的已经存在的值填充列的一部分?

如何解决如何用与R中的另一列相对应的已经存在的值填充列的一部分?

我正在处理一些飞行轨迹的一些清洁数据,并且'callsign'是我必须填写的必填字段。

Section of the csv I am working with

我正在使用的数据几乎有300000行,这个空白的呼号非常重复。我有什么办法可以根据它们对应的icao24标识号填写这些呼号?

我尝试使用tapply()函数根据其icao24编号分割数据并将函数应用于每个块。

tapply(myDF$callsign,myDF$icao24,...)

但是我似乎无法理解我将对每个部分应用什么“功能”,因为它们的名称不同。我是否需要对每个部分使用某种循环,并在每个部分上应用tapply()?

解决方法

如果值是空白(""),则将group {by'icao24'和replace的元素与""的{​​{1}}元素设为非空白'呼号'

first

将空白转换为library(dplyr) df2 <- df1%>% group_by(icao24) %>% mutate(callsign = replace(callsign,callsign == "",first(callsign[callsign != ""])))

后,另一个选项是fill
NA

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。