我有這個資料框:
structure(list(id = 1:5, mpg = c(21, 21, 22.8, 21.4, 18.7), cyl = c(6,
6, 4, 6, 8), n = c(2, 2, 2, 2, 2)), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame"))
id mpg cyl n
<int> <dbl> <dbl> <dbl>
1 1 21 6 2
2 2 21 6 2
3 3 22.8 4 2
4 4 21.4 6 2
5 5 18.7 8 2
我想對第 1:n 行進行切片,其中n在列中給出(此處為:2),并且
然后我想在資料幀的末尾附加這些行。
期望的輸出:
id mpg cyl n
<int> <dbl> <dbl> <dbl>
1 21 6 2
2 21 6 2
3 22.8 4 2
4 21.4 6 2
5 18.7 8 2
1 21 6 2
2 21 6 2
到目前為止,我已經嘗試過:(僅附加一行!)
library(dplyr)
df %>%
bind_rows(df[1:unique(n),])
id mpg cyl n
<int> <dbl> <dbl> <dbl>
1 1 21 6 2
2 2 21 6 2
3 3 22.8 4 2
4 4 21.4 6 2
5 5 18.7 8 2
6 1 21 6 2
Warning message:
In 1:unique(n) : numerical expression has 15 elements: only the first used
我想學習如何放入unique(n)這部分df[1:unique(n),]。
uj5u.com熱心網友回復:
如果我們要使用bind_rowswith slice- 將first'n'的值轉換為序列( seq_len) and slice,然后將資料與原始資料系結
library(dplyr)
df %>%
slice(seq_len(first(n))) %>%
bind_rows(df, .)
-輸出
# A tibble: 7 × 4
id mpg cyl n
<int> <dbl> <dbl> <dbl>
1 1 21 6 2
2 2 21 6 2
3 3 22.8 4 2
4 4 21.4 6 2
5 5 18.7 8 2
6 1 21 6 2
7 2 21 6 2
或使用 add_row
library(tibble)
df %>%
add_row(!!! {.} %>%
slice(seq_len(first(n))))
在unique上n在tidyverse背景關系外部施加。所以,應該是.$n
df %>%
bind_rows(df[1:unique(.$n),])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/398851.html
上一篇:如何在Julia中加入列?
