在数据框中绑定行时分配行名
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")
只要确保您改变了您想要的正确行。
我想分配一个行名 (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")
只要确保您改变了您想要的正确行。