R:如何在数据框中从某一列开始插入一行



我有以下数据帧:

df <- tibble(x = 1:3, y = 3:1, z = 4:6, a = 6:4, b = 7:9)

我现在需要使用以下命令从第二行、第三到第五列提取值:

newrow <- df[2,3:5]

我现在想在第二行之后插入一个新行。问题是我需要新行从第2列开始。如果我使用以下代码,该行将被添加到与我从中提取的行相同的列位置:

df%>% add_row(newrow, .before = 3)

希望任何人都能帮忙,我们非常感谢。

您的newrow数据帧具有coluns 3:5(z,a,b(中的colname。因此,add_row()将新行与这些列相匹配。

您需要使用前三个列名重命名newrow的列。

df%>% add_row(setNames(newrow, names(df)[1:ncol(newrow)]),
.before = 3)

我不确定你想要的结果是什么,但这能达到你想要的吗?

library(tibble)
library(dplyr)
df <- tibble::tibble(x = 1:3, y = 3:1, z = 4:6, a = 6:4, b = 7:9)
whatrow <- 2
whatcolumns <- 3:5
beforerow <- 3
newdf <- 
slice(df, whatrow) %>% 
select(all_of(whatcolumns)) %>% 
setNames(., names(df)[whatcolumns - 1]) %>%  
add_row(df, ., .before = beforerow)
newdf
#> # A tibble: 4 x 5
#>       x     y     z     a     b
#>   <int> <int> <int> <int> <int>
#> 1     1     3     4     6     7
#> 2     2     2     5     5     8
#> 3    NA     5     5     8    NA
#> 4     3     1     6     4     9

最新更新