我正在使用RStudio 0.98.1062
。
我想要做的是在宏中创建一个基于另一个变量的新变量(已经有我定义的后缀)在同一个数据帧中。数据框的名称和索引(后缀)是宏变量。
这是我的代码:
read_data <- defmacro(fileName, monthIndex, dfName,
expr = {
dfName <- read.table(fileName, head=TRUE,sep = ",")
#add suffix vor the variables for the corresponding month
colnames(dfName) <- paste(colnames(dfName),monthIndex, sep = "_")
#dfName["EasyClientMerge"]<-numeric()
within(dfName, assign("EasyClientMerge", paste("dfName$EasyClientNumber",monthIndex,sep="_"))
})
如果宏参数为(..., monthIndex=6, dfName= m201309)
,我希望创建以下变量
m201309$EasyClientMerge<-m201309$EasyClient_6
首先,在数据框中没有创建新变量,其次似乎是一个字符串被采用"m201309$EasyClient_6
&#34;而不是参考dataframe&amp;变量名称
非常感谢,因为我有点卡住了!
答案 0 :(得分:0)
如果你真的坚持在一个函数中生成硬编码data.frames(在我看来是一个糟糕的选择),你可以这样做。
> dfName <- "new.df"
> assign(dfName, value = list(clientMerge = 1:10, clientMerge2 = 1:10))
> as.data.frame(new.df)
clientMerge clientMerge2
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10