我想用该序列的值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 .
虽然当只有几列时可以使用这种方法和其他方法单独完成变量名称的这种替换,但我想要一个函数来有效地处理大型数据集,直接使用序列var_names
并利用所有变量都可以重命名以x
.
也许colnames
可以胜任
colnames(df) <- var_names
请注意:将数字作为列名并不是最好的主意,因为它可能会造成混淆且不易使用(例如,您需要用 `` 引用此类名称)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句