首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R循环优化/循环太耗时了

R循环优化/循环太耗时了
EN

Stack Overflow用户
提问于 2016-08-02 21:59:03
回答 1查看 105关注 0票数 0

下面的循环需要很长时间。有没有更省时的方法呢?下面的data.table由27个变量和超过600k的观察值组成。

代码语言:javascript
运行
复制
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中索引唯一条目的每次出现,即第一次出现,第二次出现,等等,然后将其作为附加列合并到现有数据中。然而,我在编译向量时得到了一些东西。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-02 22:08:16

首先,使用fread

代码语言:javascript
运行
复制
DT <- fread("file.txt", sep = "|")

接下来,使用setnames

代码语言:javascript
运行
复制
setnames(DT, 1, "X")

最后,使用rowid

代码语言:javascript
运行
复制
DT[ , vector := rowid(X)]    
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38722565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档