我想在将一行绑定到新数据帧 (d) 时分配一个行名 (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])
Run Code Online (Sandbox Code Playgroud)
实际产量
X1 X2 X3
1 0.08 0.14 0.66
Run Code Online (Sandbox Code Playgroud)
预期输出。而不是 rowname 1 我想要 A_B 作为 A_B 比率的结果
X1 X2 X3
A_B 0.08 0.14 0.66
Run Code Online (Sandbox Code Playgroud)
也许这是一个愚蠢的解决方案,但你有没有试过直接给它行名?有些像这样:
rbind(d, your_name = (df[df$ID == "A",2:4 ]/df[df$ID == "B", 2:4]))
Run Code Online (Sandbox Code Playgroud)
对我来说它的工作......问候。
更新了解决方案以解决多行问题
您可以从以下解决方案中解决所需的行名称......
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")
Run Code Online (Sandbox Code Playgroud)
输出
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13928 次 |
| 最近记录: |