Dataframe 在R中提取值

Dataframe 在R中提取值,dataframe,Dataframe,我的数据集如下: | group | begin | end | | ----- | ----- | --- | | 001 | 1 | 1 | | 001 | 1 | 2 | | 001 | 2 | 6 | | 001 | 2 | 7 | 例如,第二行中的begin值为1,它与第一行中的end值相匹配,因此我从第一行为第二行提取值 生成的数据集如下所示: | group | begin | end | | -1

我的数据集如下:

| group | begin | end | 
| ----- | ----- | --- | 
| 001   | 1     | 1   | 
| 001   | 1     | 2   | 
| 001   | 2     | 6   |
| 001   | 2     | 7   |
例如,第二行中的
begin
值为1,它与第一行中的
end
值相匹配,因此我从第一行为第二行提取值

生成的数据集如下所示:

| group | begin | end |  
|    -1 |   1   | 1   |
| 001   | 1     | 2   |
| 001   | 2     | 6   |
| 001   | 2     | 7   | 

我尝试了
which()
match()
,但它超出了我的R编程知识,我想知道如何实现它。

在基本R中,我们可以
匹配
开始
结束
列,以获得行号,从
x
y
列中提取值

df[c("base_x", "base_y")] <- df[match(df$begin, df$end), c("x", "y")]

df
#  group begin end  x  y base_x base_y
#1   001    NA   1  0  0     NA     NA
#2   001     1   2 15 18      0      0
#3   001     2   6 23 56     15     18
#4   001     2   7 11 19     15     18
#5   001     6  10 20 23     23     56
#6   001    10  11 18 19     20     23
df[c(“基x”,“基y”)]
df <- structure(list(group = c("001", "001", "001", "001", "001", "001"
), begin = c(NA, 1, 2, 2, 6, 10), end = c(1L, 2L, 6L, 7L, 10L, 
11L), x = c(0L, 15L, 23L, 11L, 20L, 18L), y = c(0L, 18L, 56L, 
19L, 23L, 19L)), row.names = c(NA, -6L), class = "data.frame")