1

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

  1. 拿一个文件说 excel 或 csv
  2. 阅读所有标签
  3. 使用适当的列名动态生成每列的平方、平方根、对数并将其写入新文件,

我被困在动态生成列名,如 Revenue_square 等。

示例“我有一个包含 3 列收入、成本和利润的 excel

现在我的宏应该能够读取每列的值和值,并执行收入、成本和利润的平方、平方根和对数,并写入 Excel,列名称为 Revenue_square、Revenue_squareroot、Revenue_log cost_square 等...

下面是我的代码

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) 
} 
4

1 回答 1

1

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

for(i in names(mydata)) {
  newname <- paste0(i,"_squared")
  mydata[[newname]] <- mydata[[i]]^2
}
于 2012-05-24T13:41:41.243 回答