1
の後に新しい行を挿入するにはmtcarsデータセットでhpが110を超え、hpで車を維持する< = 110?条件付きでデータフレームに行を挿入する
library(tidyverse)
data(mtcars)
I'veは、次のことを試みたが、success--
mtcars %>% modify_if(.p = .$hp>110,.f = add_row(.after=1)) #noe equal lengths
mtcars %>% filter(hp>110) %>% add_row(.after=1) #only gives an extra row for the first row meeting condition
mtcars %>% rownames_to_column() %>%
group_by(rowname) %>% modify_if(.p=.$hp>110,.f=add_row(.after=1)) #not egual length
せずに、次の - purrr-を使用して動作するようです:
foo <- function(df){
if (df$hp>110) {df<-add_row(.data=df,.after=1)}
df
}
mtcars %>% rownames_to_column(var = "make") %>% nest(-make) %>%
mutate(new=map(data,~ foo(.x))) %>% select (-data) %>% unnest(new)
add_row_if
と呼ばれる任意の機能?
が非常に近いしかし、mtcarsは32行を持つ 'テーブル(mtcars $ HP> 110)'ことを示しています。 18の場合はtrue、14の場合はfalseです.18の場合は、あなたの例のように新しい行が追加されますので、36 + 14 = 50の行が必要です。複雑すぎる。 – Misha