繁体   English   中英

R循环优化/循环太耗时

[英]R Loop optimisation/ Loop is way too time consuming

以下循环需要一段时间。 有什么办法可以更节省时间吗? 以下data.table包含27个变量和超过60万个观测值。

data <- read.table("file.txt", header = T, sep= "|")
colnames(data)[c(1)] <- c("X")
data <- as.data.table(data)
n=1;
vector <- vector()
for(i in 2:nrow(data))
{
  if(data[["X"]][i] != data[["X"]][i-1])
  {
   n=1; vector[i]=1} 
 else {
   n=n+1; vector[i]=n}}

基本上,我需要索引X中唯一项的每个外观,即它第一次出现,第二次出现等等,然后将其合并到现有数据中作为附加列。 但是,在编译向量时我有很多库存。

谢谢。

首先,使用fread

DT <- fread("file.txt", sep = "|")

接下来,使用setnames

setnames(DT, 1, "X")

最后,使用rowid

DT[ , vector := rowid(X)]    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM