我想使用此序列seq
的值将x1
列重命名为数据框x10
的df
。
序列 - 要使用的变量名称
var_names<-seq(10, 23.5, 1.5)
数据框,其中以x
开头的所有变量都将通过序列var_names
的值重命名
df =
data.frame( x1 = rlnorm(10000), x2 = rlnorm(10000), x3 = rlnorm(10000), x4 = rlnorm(10000), x5 = rlnorm(10000), x6 = rlnorm(10000), x7 = rlnorm(10000), x8 = rlnorm(10000), x9 = rlnorm(10000), x10 = rlnorm(10000))
我的尝试
df_renamed <- apply(df, 2, function(x) data.table::setnames(df, old=colnames(x), new=var_names))
## Error in data.table::setnames(df, old = colnames(x), new = var_names) :
## 'new' is not a character vector
预期产出
在输出数据帧中,我想将变量名x1替换为10,x2乘以11.5,x3乘13,x4乘以14.5,x5乘16,x6乘17.5,x7乘19,x8乘20.5,x9乘22,x10乘23.5 。
虽然这个变量名称的替换可以使用this和其他方法单独完成,但只有几列,我想要一个函数,使用大型数据集直接使用序列var_names
并充分利用所有变量这一事实要重命名,请从x
开始。
也许colnames
可以胜任这项工作
colnames(df) <- var_names
只是一句话:将数字作为名称不是最好的主意,因为它可能令人困惑并且不易使用(例如,您需要使用``引用这些名称)