我有一个名为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
谢谢
答案 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
创建表达式然后评估该表达式不是对数据框的列求和的好方法。