Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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 - Fatal编程技术网

为R中的序列定义前导计数器

为R中的序列定义前导计数器,r,R,我试图在R中创建一个数字序列,如下所示: ID|class|counter A| z| 1 A| z| 2 A| c| 1 A| c| 2 A| z| 3 B| z| 1 B| c| 1 B| c| 2 所以Id是唯一的,我想知道每个观察值在给定的类中的顺序。我试图计算内部类Id组合。如何做到这一点?这里有一个选项 library(dplyr) df1 %>% group_by

我试图在R中创建一个数字序列,如下所示:

ID|class|counter
 A|   z|    1
 A|   z|    2
 A|   c|    1
 A|   c|    2
 A|   z|    3
 B|   z|    1
 B|   c|    1
 B|   c|    2
所以Id是唯一的,我想知道每个观察值在给定的类中的顺序。我试图计算内部类Id组合。如何做到这一点?

这里有一个选项

library(dplyr)    
df1 %>% 
   group_by(ID, class) %>%
   mutate(counter = row_number())
-输出

# A tibble: 8 x 3
# Groups:   ID, class [4]
#  ID    class counter
#  <chr> <chr>   <int>
#1 A     z           1
#2 A     z           2
#3 A     c           1
#4 A     c           2
#5 A     z           3
#6 B     z           1
#7 B     c           1
#8 B     c           2
数据 这里有一个选择

library(dplyr)    
df1 %>% 
   group_by(ID, class) %>%
   mutate(counter = row_number())
-输出

# A tibble: 8 x 3
# Groups:   ID, class [4]
#  ID    class counter
#  <chr> <chr>   <int>
#1 A     z           1
#2 A     z           2
#3 A     c           1
#4 A     c           2
#5 A     z           3
#6 B     z           1
#7 B     c           1
#8 B     c           2
数据 使用ave的基本R选项

使用ave的基本R选项

within(
  df,
  counter <- ave(1:nrow(df), ID, class, FUN = seq_along)
)
setDT(df)[, counter := seq(.N), by = names(df)]