我正在编写一个执行以下功能的宏
我坚持动态生成列名,如Revenue_square等。
示例“我有3列收入,成本和利润
的Excel现在我的宏应该能够读取值和每列,并执行方形,平方根和收入日志,成本和&利用列名作为Revenue_square,Revenue_squareroot,Revenue_log cost_square等写入Excel并将其写入Excel
以下是我的代码
test$Rev_square = test[c(1)]^2
data=read.delim2("//ARLMSAN01/CTRX_Data/vikasK.sharma/Desktop/balancesheet_example.csv",header=T,sep=",")
headings = names(data)
show (headings)
HEADINGS = toupper(headings)
for ( i in 1:length(HEADINGS)) {
show(i)
data$Rev_square=data[c(i)]^2
show(data$Rev_square)
names(data)
}
答案 0 :(得分:1)
您可以使用paste
(或paste0
)或sprintf
来创建新列名称,然后使用[[
而不是$
来执行分配。另外,最好在循环语句中使用seq_along
而不是1:length
。
for(i in names(mydata)) {
newname <- paste0(i,"_squared")
mydata[[newname]] <- mydata[[i]]^2
}