我不知道我尝试做的事情是否可行!我有一个值矩阵(Var_sim),我将其转换为ff对象。使用“粘贴”创建此对象的名称。现在我想在函数ffload中使用这个对象,这是我的代码:
Variables[k] = TEMP
Cell_number[i] = 4095
selected_domains = 1
assign(paste("Mat_",Variables[k],"_",Cell_number[i],"_",selected_domains[j],sep=""),as.ff(Var_sim))
这里我将变量Mat_TEMP_4085_1作为ff对象。我在循环中使用它,所以我将有各种名称的不同ff对象(不同的cell_number)。我需要在函数中使用Mat_TEMP_4085_1(和其他),但我不能只写名字:
ffsave(as.name(paste("Mat_",Variables[k],"_",Cell_number[i],"_",selected_domains[j],sep="")), file="Test")
我有以下错误:
Error in ffsave(as.name(paste("Mat_", Variables[k], "_", Cell_number[i], :
objet ‘as.name(paste("Mat_", Variables[k], "_", Cell_number[i], "_", selected_domains[j], sep = ""))’ not found
它无法识别变量。我该怎么办?
答案 0 :(得分:0)
看起来你没有正确使用as.name
。如果您想从变量的字符串名称中获取变量值,请使用as.character
,只需将其删除或在其周围包裹get
; @Spacedman 是对的,如果可以,你应该更喜欢名单。
tt = "rbind"
print(do.call(tt,list(LETTERS))) # works
print(do.call(as.name(tt),list(LETTERS))) # does not work
print(do.call(as.character(as.name(tt)),list(LETTERS))) # works
print(do.call(get("tt"),list(LETTERS))) # works