我有以下数据帧:
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