Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:对于大数据集,为级别编号并分配给新列_R_Levels - Fatal编程技术网

R:对于大数据集,为级别编号并分配给新列

R:对于大数据集,为级别编号并分配给新列,r,levels,R,Levels,这是一个简单的问题。 我有一个面板数据的数据框,其中有一列每个人的标识/姓名/ID。假设此列有n个级别,即在某个时间段内,面板中有n个人。 我想在数据框中添加一列N,该列的值为N,即级别编号。 也就是说,每个ID/name/level都会被分配一个从1到n的数字。 下面是一段代码,可以满足我的要求: i = 1 for(l in levels(data$IDs)) { data[data$ID == l,]$N = i i = i+ 1 } 到目前为止还不错。问题:我的数据集很大。非常大。手

这是一个简单的问题。
我有一个面板数据的数据框,其中有一列每个人的标识/姓名/ID。假设此列有n个级别,即在某个时间段内,面板中有n个人。
我想在数据框中添加一列N,该列的值为N,即级别编号。
也就是说,每个ID/name/level都会被分配一个从1到n的数字。 下面是一段代码,可以满足我的要求:

i = 1
for(l in levels(data$IDs))  {
data[data$ID == l,]$N = i
i = i+ 1
}
到目前为止还不错。问题:我的数据集很大。非常大。手动操作太多了。而且上述操作花费的时间太长。 这是一个循环,所以我猜在R中有一种更快的方法,使用向量运算。
有人知道一种快速计算的方法吗?

只需使用
data$N谢谢,它工作了大约1秒,而前一个已经运行了1个多小时。如果需要1秒,您的数据集足够大,您可能需要查看package data.table。