2012-12-12 2 views
2

내가 여기서 잘못하고있는 것이 확실하지 않으며 도움을 주시면 감사하겠습니다.c() 오작동?

"control"이라는 새 변수를 만들고 행 변수가이 숫자와 같을 때 1로 코딩하려고 시도하고 있지 않습니다.

data$control= ifelse (data$row==c(146, 297, 313, 171, 262, 233, 292, 304, 264, 228, 279,  
281, 290, 277, 152, 161, 250, 263, 245, 83, 67, 101, 98, 251, 148, 155, 322, 265, 
159, 271, 278, 289, 274, 282, 158, 196, 154, 260, 163, 307, 272, 299, 300, 273, 167, 
286, 149, 316, 147, 162, 178), 1, 0) 

"control"이라는 새 변수를 만들고 row = 149 및 row = 264에 대해 1로만 코드를 만듭니다. 나는 이것을 정말로 이해할 수 없다. 도움을

감사합니다, 크리스

+0

C (146, 297, 313, 171, 262, 233, 292의 어떤 부분, (304) , 264, 228, 279, 281, 290, 277, 152, 161, 250, 263, 245, 83, 67, 101, 98, 251, 148, 155, 322, 265, 159, 271, 278, 289 , 274, 282, 158, 196, 154, 260, 163, 307, 272, 299, 300, 273, 167, 286, 149, 316, 147, 162, 178) 당신은 그것을 맞추기 위해 q를 retille해야합니다 – mdsumner

+2

그냥 일반적인 문제 해결 팁 : 항상 그들이 당신이하고 있다고 생각하고 있는지 확인하기 위해 귀하의 주장을 세분화! 'data $ row == c (146, ....)'을 수행하면 바로 원하는 것을 알 수 있습니다. –

답변

11

당신은 ==보다는 %in%를 사용하는 의미 :

data$control= ifelse (data$row %in% c(146, 297, 313, 171, 262, 233, 292, 304, 264, 228, 279, 281, 290, 277, 152, 161, 250, 263, 245, 83, 67, 101, 98, 251, 148, 155, 322, 265, 159, 271, 278, 289, 274, 282, 158, 196, 154, 260, 163, 307, 272, 299, 300, 273, 167, 286, 149, 316, 147, 162, 178), 1, 0) 
+0

'ifelse (logical_expression, 1, 0)'대신'as.integer (logical_expression)'을 사용할 수 있습니다. –

+0

@MatthewLundberg : 또는'logical_expression + 0' :) –