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。