R:具有连续整数的数据帧的行扩展

R:具有连续整数的数据帧的行扩展,r,dataframe,integer,R,Dataframe,Integer,我测量了一些位置,例如: library(dplyr) set.seed(8) data <- data.frame(id=LETTERS[1:5], pos=c(0,round(runif(4, 1, 10),0))) %>% arrange(pos) > data id pos 1 A 0 2 C 3 3 B 5 4 E 7 5 D 8 您可以通过多种方式来实现这一点,但在base R中,有一种方式是使

我测量了一些位置,例如:

library(dplyr)
set.seed(8)
data <- 
  data.frame(id=LETTERS[1:5],
            pos=c(0,round(runif(4, 1, 10),0))) %>% 
  arrange(pos)
> data
  id pos
1  A   0
2  C   3
3  B   5
4  E   7
5  D   8

您可以通过多种方式来实现这一点,但在base R中,有一种方式是使用merge:

merge(data.frame(pos = 0:8), data, all.x = TRUE)
或者,使用
dplyr
,它是:

data.frame(pos = 0:8) %>% left_join(data)

您可以通过多种方式来实现这一点,但在base R中,有一种方式是使用merge:

merge(data.frame(pos = 0:8), data, all.x = TRUE)
或者,使用
dplyr
,它是:

data.frame(pos = 0:8) %>% left_join(data)
我们可以试试

 library(data.table)
 setDT(data)[data.table(pos=0:8), on='pos']
#    id pos
#1:  A   0
#2: NA   1
#3: NA   2
#4:  C   3
#5: NA   4
#6:  B   5
#7: NA   6
#8:  E   7
#9:  D   8
我们可以试试

 library(data.table)
 setDT(data)[data.table(pos=0:8), on='pos']
#    id pos
#1:  A   0
#2: NA   1
#3: NA   2
#4:  C   3
#5: NA   4
#6:  B   5
#7: NA   6
#8:  E   7
#9:  D   8

对于base R解决方案,尽管akrun的同样简单。也许,尽管我不认为data.table是base R。对于base R解决方案,尽管akrun的同样简单。也许,尽管我不认为data.table是base R。