如何更快地在两个向量之间复制数据?
How to copy data between two vectors faster?
我有一个包含 3 列的数据框 (username, IP_Address, IP_type
)。
列 IP_Address
有一些 NA
值。
对于IP_Address
中的每一行,如果值为NA
,我想从username
.
列中复制相应的值
我正在使用以下代码,但它 运行 非常慢。我有230,000行数据,但一个小时后才完成一半
为什么很慢?我怎样才能更有效地做到这一点?
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 是一种解释型语言,因此向量化运算几乎总是比涉及循环的运算更快。
找到地址中有 NA 的索引(行),然后只分配那些值:
na_address <- which(is.na(log_data$IP_address))
log_data$IP_address[na_address] <- log_data$user_name[na_address]
我有一个包含 3 列的数据框 (username, IP_Address, IP_type
)。
列 IP_Address
有一些 NA
值。
对于IP_Address
中的每一行,如果值为NA
,我想从username
.
我正在使用以下代码,但它 运行 非常慢。我有230,000行数据,但一个小时后才完成一半
为什么很慢?我怎样才能更有效地做到这一点?
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 是一种解释型语言,因此向量化运算几乎总是比涉及循环的运算更快。
找到地址中有 NA 的索引(行),然后只分配那些值:
na_address <- which(is.na(log_data$IP_address))
log_data$IP_address[na_address] <- log_data$user_name[na_address]