如何解决R:如何在Dataframe中从某一列开始插入一行?
我有以下数据框:
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)的列名。因此,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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。