转型宏

时间:2012-05-24 09:07:03

标签: r

我正在编写一个执行以下功能的宏

  1. 取一个文件说excel或csv
  2. 阅读所有标签
  3. 使用适当的列名动态生成每列的正方形,平方根,日志,并将其写入新文件,
  4. 我坚持动态生成列名,如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) 
    } 
    

1 个答案:

答案 0 :(得分:1)

您可以使用paste(或paste0)或sprintf来创建新列名称,然后使用[[而不是$来执行分配。另外,最好在循环语句中使用seq_along而不是1:length

for(i in names(mydata)) {
  newname <- paste0(i,"_squared")
  mydata[[newname]] <- mydata[[i]]^2
}