我通过宏从excel调用R脚本。
在excel中,我有三个单元格作为Area
Area
DEHRADUN Delhi MUMBAI
这些区域分别是args [1],args [2],args [3]。现在,我正在使用以下代码
AreaIn<-NULL
AreaIn<-c(1:3)
for(k in 1:3){
AreaIn[k]<-as.character(args[AreaIn[k]])
}
将AreaIn作为c('DEHRADUN','德里','MUMBAI')。
但我只是将AreaIn作为“DEHRADUN”。有人可以告诉我该怎么做。
注意:我刚刚从更大的代码中获取了此问题所需的部分代码。
首先使用AreaIn
将AreaIn<-c(1:3)
声明为数字或整数。
但是然后使用以下方法将类型更改为循环中的character
:
AreaIn[k]<-as.character(args[AreaIn[k]])
如果您运行以下诊断,您将发现正在发生的事情:
args <- c("A","B","C")
AreaIn<-NULL
AreaIn<-c(1:3)
for(k in 1:3){
cat(class(AreaIn),AreaIn,"\n")
AreaIn[k]<-as.character(args[AreaIn[k]])
cat(class(AreaIn),AreaIn,"\n")
}
输出:
integer 1 2 3
character A 2 3
character A 2 3
character A NA 3
character A NA 3
character A NA NA
如果你只需要args
的副本,为什么不AreaIn <- args
?