使用colnames粘贴数据框名称

时间:2014-03-08 15:01:39

标签: r

我有一个名为A的数据框.A中有六列。

A
Dxa  Dxb  Dxc  Dxd  Dxe  Dxf 

我想知道如何在每个列名之前指示粘贴A $。所以A最终成为“A $ Dxa A $ Dxb A $ Dxc A $ Dxd A $ Dxe A $ Dxf”

这是放在下面的表达式中

paste(colnames(A), collapse=" + ")

所以它最终成为

A$Dxa + A$Dxb  + A$Dxc + A$Dxd + A$Dxe + A$Dxf    

谢谢

2 个答案:

答案 0 :(得分:1)

A<-data.frame(Dxa=numeric(), Dxb=numeric(),  Dxc=numeric(),  
              Dxd=numeric(),  Dxe=numeric(),  Dxf=numeric() )
paste("A",colnames(A),sep="$", collapse=" + ")

结果:

[1] "A$Dxa + A$Dxb + A$Dxc + A$Dxd + A$Dxe + A$Dxf"

修改 或者你可以使用(如Tyler Rinker建议的那样)

paste0("A$",colnames(A), collapse=" + ")

答案 1 :(得分:0)

看起来您正在尝试添加数据框的所有列。您可以使用Reduce函数或rowSums函数执行此操作:

# Sample Data
A = data.frame(Dxa=1:3, Dxb=1:3, Dxc=2:4, Dxd=7:5, Dxe=c(0, 0, 100))
A
#   Dxa Dxb Dxc Dxd Dxe
# 1   1   1   2   7   0
# 2   2   2   3   6   0
# 3   3   3   4   5 100

# Add Columns
Reduce("+", A)
# [1]  11  13 115
rowSums(A)
# [1]  11  13 115
apply(A, 1, sum)
# [1]  11  13 115

使用paste创建表达式然后评估该表达式不是对数据框的列求和的好方法。