首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按名称将行放置到r中数据帧的开头

如何按名称将行放置到r中数据帧的开头
EN

Stack Overflow用户
提问于 2021-09-21 02:43:48
回答 1查看 39关注 0票数 1

我有这个数据框

代码语言:javascript
复制
a <- c(5, 7, 9, 11)
b <- c(-8, -10, -3, -1)
c <- c(-4, -1, -6, 3)
d <- c(-4, -1, -6, 3)
df <- t(data.frame(a,b,c, d))
代码语言:javascript
复制
   V1  V2   V3  V4
a   5   7   9   11
b   -8  -10 -3  -1
c   -4  -1  -6   3
d   -4  -1  -6   3

然后我希望其余的行保持相同的顺序,只是为了将我想要的行(通过行名)设置在我的数据框的某个位置。

对于d在第二个位置,即:

代码语言:javascript
复制
   V1  V2   V3  V4
a   5   7   9   11
d   -4  -1  -6   3
b   -8  -10 -3  -1
c   -4  -1  -6   3

对于位于第一个位置的c,即:

代码语言:javascript
复制
   V1  V2   V3  V4
c   -4  -1  -6   3
a   5   7   9   11
b   -8  -10 -3  -1
d   -4  -1  -6   3
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-21 02:46:29

我们可以创建一个函数

代码语言:javascript
复制
f1 <- function(dat, rownm, pos) {
    full_rnm <- row.names(dat)
    tmp <- full_rnm
    nm1 <- setdiff(full_rnm, rownm)
    rn <- seq_along(full_rnm)
    tmp[pos] <- rownm
    tmp[-pos] <- nm1
    dat[tmp, ]  
}

-testing

代码语言:javascript
复制
> f1(df, "d", 2)
  [,1] [,2] [,3] [,4]
a    5    7    9   11
d   -4   -1   -6    3
b   -8  -10   -3   -1
c   -4   -1   -6    3

> f1(df, "c", 1)
 [,1] [,2] [,3] [,4]
c   -4   -1   -6    3
a    5    7    9   11
b   -8  -10   -3   -1
d   -4   -1   -6    3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69262818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档