如何在R中更快地在两个向量之间复制数据?

问题描述 投票:0回答:1

我有一个包含三列的数据框(username, IP_Address, IP_type

IP_Address列具有一些NA

对于IP_Address中的每一行,如果值是NA,我想从列username中复制相应的值。

我正在使用以下代码,但运行速度非常慢。我有23万行数据,但一小时后才中途通过。

为什么会很慢?我怎样才能更有效地做到这一点?

   for (i in 1:length(log_data$IP_type)) {

    if (is.na(log_data$IP_address[i]) == TRUE ){

    log_data$IP_address[i] <- log_data$user_name[i]


    }

    }
r loops for-loop multiple-columns na
1个回答
2
投票

查找地址中具有NA的索引(行),然后仅分配那些值:

na_address <- which(is.na(log_data$IP_address))
log_data$IP_address[na_address] <- log_data$user_name[na_address]
© www.soinside.com 2019 - 2024. All rights reserved.