2013-05-15 1 views
0

"변수"변수를 수정하려고합니다. 즉, 데이터 프레임/행렬의 셀에있는 텍스트와 이름이 일치하는 변수 만 수정하려고합니다.데이터 프레임 셀에 명명 된 변수를 어떻게 수정할 수 있습니까?

예를 들어 matrix1[1,1] == "Rupert" 인 경우 Rupert 변수 (예 :)에 대한 작업을 수행하려고합니다. 하지만 matrix1[1,1] == "Paddington"이라면 Paddington 변수에서 연산을 수행하고 싶습니다.

나는 내가 그의 이름 행렬의 텍스트 즉 새로운 변수를 생성 수있는 assign() 기능을 발견했습니다,하지만 난 비슷한 방식으로 변수를 수정하는 방법을 알아낼 수 없었다 . 귀하의 예제를 사용하여 귀하의 관심

감사합니다,

알리스 테어

+0

'assign' 또한 변수를 덮어 씁니다. '얻을 '그것을 얻을 것이다. :) – Frank

답변

1

는 :

var <- matrix1[1,1] 
assign(var,get(var)+1) 

get 기능 help(assign)의 "참조"절에서 찾을 수 있습니다.

+0

프랭크 대단히 고마워. 이 질문을 가로막는 다른 모든 사람들 : ** assign (matrix1 [1,1], 3)을 사용하여 ** 변수를 할당 할 수 없다는 것에주의하십시오. 정확한 코드는'assign (paste (matrix1 [1,1], ", sep =" "), 3)'- 당신은 반드시"paste "명령을 사용해야합니다. 마찬가지로, 내가 시도하고있는 방식으로 프랭크 답을 적용하고 싶다면 올바른 코드는'assign (paste1 (matrix1 [1,1], ", sep =" "), get (paste (matrix1 [1 , 1], "", sep = ""))) + 3)'. – DifferentFrogs

+0

허, 나도 몰랐다. 여러분이'assign'와'get'에 의지 할 때 곧 일이 까다로워집니다. 나는 대부분의 R 사용자가 가능하면 피해야한다고 조언합니다. 나는 전문가는 아니지만 추측은 다음과 같다고 생각합니다. 더 까다로운 코드를 요구하는 것 외에도이 방법은 계산 비용이 많이 들고 이전에 정의한 실수로 잊어 버릴 수있는 네임 스페이스의 많은 객체를 남깁니다. – Frank

관련 문제