下面的循环需要很长时间。有没有更省时的方法呢?下面的data.table由27个变量和超过600k的观察值组成。
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中索引唯一条目的每次出现,即第一次出现,第二次出现,等等,然后将其作为附加列合并到现有数据中。然而,我在编译向量时得到了一些东西。
谢谢。
发布于 2016-08-02 22:08:16
首先,使用fread
DT <- fread("file.txt", sep = "|")接下来,使用setnames
setnames(DT, 1, "X")最后,使用rowid
DT[ , vector := rowid(X)] https://stackoverflow.com/questions/38722565
复制相似问题