반응형
R에 "붙여 넣기"로 변수 이름을 만드시겠습니까?
아래를 참조하십시오.
paste("perf.a", "1", sep="")
[1] "perf.a1"
값을 할당하려면 perf.a1
어떻게 해야 합니까?
나는 시도 as.name
, as.symbol
아무 소용와 등 :
as.name(paste("perf.a", "1", sep="")) = 5
Error in as.name(paste("perf.a", "1", sep = "")) = 5 :
target of assignment expands to non-language object
as.symbol(paste("perf.a", "1", sep="")) = 5
Error in as.symbol(paste("perf.a", "1", sep = "")) = 5 :
target of assignment expands to non-language object
noquote(paste("perf.a", "1", sep="")) = 5
Error in noquote(paste("perf.a", "1", sep = "")) = 5 :
target of assignment expands to non-language object
assign
( doc )를 사용하여 perf.a1의 값을 변경할 수 있습니다 .
> assign(paste("perf.a", "1", sep=""),5)
> perf.a1
[1] 5
을 참조하십시오 ?assign
.
> assign(paste("tra.", 1, sep = ""), 5)
> tra.1
[1] 5
제 경우에는 eval () 함수가 아주 잘 작동합니다. 아래에서 10 개의 변수를 생성하고 10 개의 값을 할당합니다.
lhs <- rnorm(10)
rhs <- paste("perf.a", 1:10, "<-", lhs, sep="")
eval(parse(text=rhs))
내 경우에는 내가 만든 기호 (Tax1, Tax2 등)에 이미 값이 있지만 루프를 사용하고 기호를 다른 변수에 할당하고 싶었습니다. 그래서 위의 두 가지 답변은 이것을 달성하는 방법을 제공했습니다. 나중에 언제든지 값을 할당 할 수 있으므로 질문에 답하는 데 도움이 될 수 있습니다.
output=NULL
for(i in 1:8){
Tax=eval(as.symbol(paste("Tax",i,sep="")))
L_Data1=L_Data_all[which(L_Data_all$Taxon==Tax[1] | L_Data_all$Taxon==Tax[2] | L_Data_all$Taxon==Tax[3] | L_Data_all$Taxon==Tax[4] | L_Data_all$Taxon==Tax[5]),]
L_Data=L_Data1$Length[which(L_Data1$Station==Plant[1] | L_Data1$Station==Plant[2])]
h=hist(L_Data,breaks=breaks,plot=FALSE)
output=cbind(output,h$counts)
}
참고 URL : https://stackoverflow.com/questions/5510966/create-a-variable-name-with-paste-in-r
반응형
'Program Tip' 카테고리의 다른 글
RuntimeError : 모듈이 API 버전 A에 대해 컴파일되었지만이 버전의 numpy는 9입니다. (0) | 2020.10.21 |
---|---|
equals 메소드와 관련된 Java 코드 (0) | 2020.10.21 |
Nginx를 사용한 WSGI 대 uWSGi (0) | 2020.10.21 |
Rails .where 대 .find (0) | 2020.10.21 |
java.sql.Timestamp 시간대는 특정입니까? (0) | 2020.10.21 |