在数据框中绑定行时分配行名

assign row name while rbind a row in a data frame

我想分配一个行名 (A_B),同时我将一行绑定到一个新的数据框中 (d)。 该行是另一个数据框(df)的两行比率的结果。

    df <- data.frame(ID = c("A", "B" ),replicate(3,sample(1:100,2,rep=TRUE)))
    d <- data.frame()
    d<-rbind(d, df[df$ID == "A",2:4 ]/df[df$ID == "B", 2:4])

实际产量

    X1   X2   X3
1 0.08 0.14 0.66

预期输出。作为 A_B ratio

的结果,我想要 A_B 而不是 rowname 1
       X1   X2   X3
A_B 0.08 0.14 0.66

更新了解决多行问题的解决方案

您可以通过以下解决方案解决所需的行名称....

df <- data.frame(ID = c("A", "B" ),replicate(3, sample(1:100,8,rep=TRUE)))
# This is where you control what you like to see as the row names    
rownames(df) <- make.names( paste("NAME", df[ ,"ID"]) , unique = TRUE)
d <- data.frame()
rbind(d, df[df$ID == "A",2:4 ]/df[df$ID == "B", 2:4], make.row.names = "T")

输出

               X1        X2         X3
NAME.A   0.8690476 1.1851852 2.40909091
NAME.A.1 1.8181818 0.8095238 1.01408451
NAME.A.2 0.8235294 5.4444444 2.50000000
NAME.A.3 1.4821429 1.8139535 0.05617978

也许这是一个愚蠢的解决方案,但你有没有试过直接给它行名?有些像这样:

rbind(d, your_name = (df[df$ID == "A",2:4 ]/df[df$ID == "B", 2:4]))

对我来说它正在工作...问候。

您可以通过将 rbind 输出传递到函数 rownames() 的管道来分配行名称,并根据需要更改行名称。

%>% rownames(.) <- c("Name you like")

只要确保您改变了您想要的正确行。