我希望在将行绑定到新数据帧(d)时分配一个rowname(A_B)。 该行是另一个数据帧(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
预期产出。而不是rowname 1我想要A_B作为A_B比率的结果
X1 X2 X3
A_B 0.08 0.14 0.66
答案 0 :(得分:1)
更新解决方案以解决多行问题
您可以从以下解决方案中解决所需的行名称....
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
答案 1 :(得分:1)
也许这是一个愚蠢的解决方案,但你试过直接给它行名称吗?有人喜欢这样:
rbind(d, your_name = (df[df$ID == "A",2:4 ]/df[df$ID == "B", 2:4]))
对我而言,这是有效的......问候。
答案 2 :(得分:0)
您可以通过将 rbind 输出传递到管道到函数 rownames() 并根据需要更改行名称来分配行名称。
%>% rownames(.) <- c("Name you like")
只要确保你改变了你想要的正确行。